首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心数据嵌套关系获取谓词

核心数据嵌套关系获取谓词
EN

Stack Overflow用户
提问于 2015-10-08 10:50:31
回答 2查看 822关注 0票数 0

好的,所以我在寻找答案,我可能是在假设其他人没有答案,这就是为什么这个解决方案对他们有效。

Problem:假设我有一个名为DogOwner的实体。狗主人可以有多个Dogs,每只狗可以有多个Wearables。请注意,所有的关系都是可选的和一对多的(逆多对一)。

Aim:搜索所有拥有Wearable类型GpsTracker并包含898764 id的狗主人。

My方法:使用以下谓词获取实体DogOwner

代码语言:javascript
复制
NSPredicate(format: "(dog.wearable.type == %@) AND (dog.wearable.external_id CONTAINS[cd] %@)", theType, theIdentifier)

我得到了一个unimplemented SQL generation for predicate错误。

尝试了 ->和ANY (Nested core data fetch),尝试了互联网上的其他东西。到目前为止,我还没有看到任何工作,我认为这个问题是更深层次的,因为嵌套树结构图正被其他人使用点表示法成功地查询。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-08 13:22:39

我认为您需要使用SUBQUERY,如果只因为需要同时测试这两种条件:

代码语言:javascript
复制
NSPredicate(format: "SUBQUERY(dog, $d, SUBQUERY($d.wearable, $w, $w.type == %@ AND $w.external_id CONTAINS[cd] %@).@count > 0).@count > 0", theType, theIdentifier)

或“获取DogOwners有超过0条狗,有超过0可穿戴设备符合标准”。

票数 -1
EN

Stack Overflow用户

发布于 2015-10-09 23:24:55

虽然子查询是一种可行的方法,但它非常复杂,而且不必要。为什么不简单地搜索特定的Wearable并通过方便到一的关系来获得所有者呢?

代码语言:javascript
复制
// fetch wearable with id x
let owner = wearable.dog.owner
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33013682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档