Я пытаюсь заставить предикат подзапроса работать, и я боюсь.Предикат подзапроса основных данных
У меня есть две сущности.
[Лига] < ---- >> [Игра]
Игра имеет свойство kickOffDate
.
Я бы хотел использовать предикат, чтобы вернуть все Leagues
, у которых есть хотя бы один Game
с kickOffDate сегодня.
Я использую этот предикат ...
// startOfDay and endOfDay are functions to return the given date with 00:00:00 and 23:59:59 respectively
NSPredicate *startOfDayPredicate = [NSPredicate predicateWithFormat:@"SUBQUERY(games, $g, $g.kickOffDate >= %@)[email protected] > 0", [self startOfDay:[NSDate date]]];
NSPredicate *endOfDayPredicate = [NSPredicate predicateWithFormat:@"SUBQUERY(games, $g, $g.kickOffDate <= %@)[email protected] > 0", [self endOfDay:[NSDate date]]];
NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[startOfDayPredicate, endOfDayPredicate]];
Однако, когда я использую это не похоже, чтобы получить какие-либо результаты.
Правильно ли я написал предикат?
Есть ли лучший способ сделать это?
Да, это выглядит правильно. Единственное, о чем я думаю, это то, что OP не получает никаких результатов со своим предикатом - он должен давать слишком много результатов. –
Лучше ли использовать SubQuery вместо Compound Predicate? Какой из них следует использовать в какое время? – Satyam