核心数据:查询具有中间实体和条件的多对多关系中的不同实体

Core-data: querying distinct entities in many to many relationship with middle entity and condition

我的核心数据模型如下:

其中 code 在两个实体中都是 NSIntegervalue 也是如此。这映射了以下数据(示例数据,真实案例场景是数百行 x 数百列),其中列为 WorkCategoriesWCn,行为 FeaturesFn和单个单元格是 Feasibilities:

给定一组 Features,我需要检索其列中所有 Feasibility value(s) 都大于 1 的所有不同 WorkCategoriesWorkCategories 也应按升序排列 code。所以:

我通过查询核心数据中的所有 WorkCategories 然后使用它们的 feasibility 属性 通过代码过滤它们来实现它。

我的问题:有没有办法在核心数据中仅使用一个 FetchRequestexecuteFetchRequest:error: 输出应该已经是distinct WorkCategories Feasibility table 中的所有 value(s) 都大于 1)?

WorkCategories 的这个谓词应该这样做:

predicateWithFormat:@"SUBQUERY(feasibility, $feasibility, $feasibility.value > 1 AND $feasibility.feature IN %@).@count = %lu", featuresSet, (unsigned long)[featuresSet count]

子查询获取值 > 1 的可行性和集合中的一个特征。如果找到的可能性的数量等于集合中的数量,则集合中所有可能性的值都 > 1。