Я сражаюсь весь этот день, и я не могу понять это. Я начинаю JPA, так что теперь API Критерии - кошмар для меня. Проблема:Выбор критериев JPA с двумя подзапросами/объединениями
У меня 3 объекта: Политика, покупатель, страховщик. В политике есть ссылки на Клиента и Страховщика (с нетерпением ожидаем здесь). У клиента есть список политик, так же как и Страховщик (ленивый выбор здесь).
Я пытаюсь найти все политики, таким способом, описанным ниже (SQL):
SELECT * FROM POLICY as p WHERE
p.CUSTOMER_ID IN (SELECT ID FROM CUSTOMER as c WHERE [customerPredicates])
AND
p.INSURER_ID IN (SELECT ID FROM INSURER as i WHERE [insurerPredicates])
AND
[policyPredicates]
Где CUSTOMER_ID/INSURER_ID являются JoinColumns, полученные от @ManyToOne отношений в политике.
customerPredicates/insurerPredicates/policyPredicates - это списки предикатов (условия «где» подготовлены по заданным критериям поиска).
Как я могу достичь этого в API критериев? Что такое правила/рекомендации для создания таких запросов?
Да, переписывание этого SQL может помочь мне подойти к этому, но я хотел бы использовать чистый ** JPA Criteria API **, а не в Hibernate Crtiteria для этого. Я пытаюсь понять выбор и наложение псевдонимов в критерии JPA, но я смущен ... –
JPA также имеет псевдонимы. Таким образом, вы можете использовать ту же логику с чистым API-интерфейсом JPA – StanislavL