NSPredicate查询父级和子级

时间:2012-08-07 10:47:56

标签: iphone objective-c ios core-data nspredicate

我有一个包含三个实体的数据模型设置,Course,Student,TestScores。

它们之间存在太多关系:

Course <---->> Student <---->> TestScores

所以一门课程会有几个学生,而这些学生可能会有几个TestScores(或没有测试成绩)

Course实体具有Name属性。 TestScores是一个简单的实体,它只包含一个testScore int属性。

我希望能够获得一系列至少有一个textScore为100的学生,按课程名称排序。 NSPredicate可以实现吗?

1 个答案:

答案 0 :(得分:2)

我认为你可以将你的谓词作为

ANY testScores.score == 100

然后将其全部放在一个获取请求中:

NSFetchRequest *req = [NSFetchRequest fetchRequestForEntityNamed:@"Student"];
req.predicate = [NSPredicate predicateWithFormat:@"ANY testScores.score == 100"];
req.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"course.name" ascending:YES]];