Нулевая проверка в левом соединении в запросе критериев JPA - PullRequest
0 голосов
/ 18 февраля 2019

Я застрял в ситуации, когда я не могу создать фильтр при левом соединении между двумя таблицами, где одним из условий является проверка нуля.

Мой запрос выглядит примерно так.

select count(*)  
from orders o 
left outer join payments p on o.id=p.o_id 
where o.uid_id=1 and p.o_id is null

Я пытаюсь выполнить левое соединение с использованием запроса критериев, и я не могу понять, как я могу поставить эту нулевую проверку в запросе критериев.

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Orders> query = cb.createQuery(Orders.class);
Root<Orders> ordersRoot = query.from(Orders.class);
Join<Orders, Payments> join = ordersRoot.join(JOIN_COLUMN, JoinType.LEFT);
List<Predicate> predicates = new ArrayList<>();
predicates.addAll(getPredicates(cb, ordersRoot)); //this method gives other predicates on order table
query.where(predicates.toArray(new Predicate[predicates.size()]));
query.select(ordersRoot).distinct(true);
TypedQuery<Orders> query = entityManager.createQuery(criteriaQuery);
List<Orders> list = query.getResultList();

Это мой критерий кода Java.В этом я не добавил для этого чека до сих пор и p.o_id имеет значение null

таблица заказов и платежей имеет отношение один ко многим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...