我有3个实体," Bar","服务员","产品"关系如下, A" Bar"与" Waiter"有一对多的关系。从服务员到产品也一样。
我有一系列Waiters在Bar上工作,我想根据服务员是否服务某个产品来过滤服务员。
我试图过滤条形图中所有Waiters的数组,[bar.toWaiter allObjects]
到目前为止,我已尝试过:
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"toProduct.endSaleDate > %@ AND toProduct.published == YES", [NSDate date]];
和
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"ANY toProduct.endSaleDate > %@ AND ANY toProduct.published == YES", [NSDate date]];
我只想要那些产品已发布""将来是YES和endSaleDate。我得到的是具有产品发布的产品或具有未来日期的产品。
我怎样才能实现我所寻找的目标。
谢谢!
答案 0 :(得分:1)
似乎谓词被解释为“给我的服务员有任何已发布的产品和任何带有未来日期的产品”。但它并不要求相同的产品满足两个条件。
您可以使用SUBQUERY来确保:
[NSPredicate predicateWithFormat:"@"SUBQUERY(toProduct, $product, $product.published == 1 AND $product.endSaleDate > %@).@count > 0"];