我有 2 个表,它们之间通过多对多关系链接。
SQL 等效项不存在,因为它需要第三个表将多对多关系拆分为两个一对多关系。
例如,我有两个核心数据实体:具有属性的类别(项目数组)和具有属性的项目(类别数组)。
我需要获取除“空”类别之外的所有类别(当没有此类别的项目时)。
我目前的临时解决方案看起来不正确。我使用 NSFetchRequest 来获取所有类别。然后,我使用 for-each 手动从该数组中删除所有具有空项数组的类别。
我有 2 个表,它们之间通过多对多关系链接。
SQL 等效项不存在,因为它需要第三个表将多对多关系拆分为两个一对多关系。
例如,我有两个核心数据实体:具有属性的类别(项目数组)和具有属性的项目(类别数组)。
我需要获取除“空”类别之外的所有类别(当没有此类别的项目时)。
我目前的临时解决方案看起来不正确。我使用 NSFetchRequest 来获取所有类别。然后,我使用 for-each 手动从该数组中删除所有具有空项数组的类别。
为了获取除空类别之外的所有类别,您可以使用如下谓词:
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Category"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"items.@count > 0"];
NSArray *categories = [context executeFetchRequest:fetchRequest error:NULL];
我的解决方案:
[NSPredicate predicateWithFormat:@"ANY items != nil"]