如何构建这个 SUBQUERY NSPredicate?
Posted
技术标签:
【中文标题】如何构建这个 SUBQUERY NSPredicate?【英文标题】:How do I build this SUBQUERY NSPredicate? 【发布时间】:2012-03-26 14:08:12 【问题描述】:问题是这样的:
我有 3 个实体:ImgThumb、Img 和 BookmarkedItems。它们之间的关系如下:
ImgThumb <-> Img (1 to 1)
Img <->> BookmarkItems (1 to many)
现在,有了一个 ImgThumb 数组,我正在尝试创建一个 NSPredicate 来过滤这些 ImgThumb,如下所示:
我需要所有未添加书签的 ImgThumb。为了实现这一点,我正在尝试使用 SUBQUERY 构建一个 NSPredicate,如下所示:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"0 != SUBQUERY(image, $x, 0 != SUBQUERY($x.bookmarkItems, $y, $y.@count == 0).@count).@count"];
我的请求失败并出现错误:
Unable to generate SQL for predicate (0 != SUBQUERY(image, $x, 0 != SUBQUERY($x.bookmarkItems, $y, $y.@count == 0).@count).@count) (problem on RHS)
我做错了什么?
【问题讨论】:
【参考方案1】:您不需要SUBQUERY
。我假设您的 fetch 实体是 ImgThumb
,在这种情况下您的谓词应该是:
[NSPredicate predicateWithFormat:@"img.bookmarkItems.@count == 0"];
【讨论】:
以上是关于如何构建这个 SUBQUERY NSPredicate?的主要内容,如果未能解决你的问题,请参考以下文章
HIVE SubQuery 表达式同时引用 Parent 和 SubQuery 表达式