У меня есть структура базовой модели данных вроде следующий:NSPredicate и основные данные: извлекать объекты между отношениями
Product <-->> OrderProduct where the relationship (from Product to OrderProduct) is called productOrders while the inverse is called product
Order <-->> OrderProduct where the relationship is called orderProducts while the inverse is called order
Client <-->> Order where the relationship is called orders while the inverse is called client
В течение UIViewController
я использую NSFetchRequest
, связанный со следующим предикатом:
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"(ANY productOrders.order.client.code == %@)", clientCode];
Предикат работает хорошо. Я могу получить продукты для одного (или более) заказов, связанных с конкретным клиентом.
Теперь я должен добавить еще один шаг. Найдите последний заказ (заказ по дате) для конкретного клиента. Я пробовал следующий предикат, но он не работает:
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"(ANY productOrders.order.client.code == %@ AND [email protected])", clientCode];
где orderDate
имеет тип NSDate
.
Должен ли я использовать SUBQUERY? Как я могу это достичь? Заранее спасибо.
Если вам нужна только одна запись, вы действительно можете использовать предикат. – ggfela