1

我使用 core-data 和 hava 2 嵌入关系。我还有一个日历,我应该在选定的日期下载所有疾病的所有药物。我如何使用子查询或使用子查询来做到这一点?

Disease ->>Medicine->>Date

截图在这里http://savepic.ru/4608231.png

我可以搜索所有药物而不与疾病绑定吗?

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:@"MyMedicine" inManagedObjectContext:objectContext]];
[request setSortDescriptors:[NSArray initWithObject:[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES]];
[request setPredicate:[NSPredicate predicateWithFormat:@"(data == %@)", currentData]];
4

1 回答 1

0

假设您像这样初始化 NSFetchRequest:

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:@"MyMedicine" inManagedObjectContext:objectContext]];
[request setSortDescriptors:[NSArray initWithObject:[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES]];

您可以像这样设置谓词:

// Dates
[request setPredicate:[NSPredicate predicateWithFormat:@"date == %@", datesEntity]];

或者

// NSDate
[request setPredicate:[NSPredicate predicateWithFormat:@"date.date == %@", date]];

默认情况下,所有关系都将作为故障提取,如果您需要在此提取期间提取它们,您可以配置要在此提取中提取的关系键路径,如下所示:

NSArray* relationKeys = [NSArray arrayWithObject:@"disease"];
[request setRelationshipKeyPathsForPrefetching:relationKeys];

使用这种方法,Disease将获取所有相关实体以及所有匹配Dates实体。

于 2013-06-06T12:35:12.063 回答