SELECT DISTINCT + ORDER BY na API JPA 2 Criteria
Eu tenho uma aulaLawsuit
, que contém umList<Hearing>
, cada um com umDate
atributo.
Eu preciso selecionar todas asLawsuit
s ordenados pela data de suaHearing
s
Eu tenho um CriteriaQuery como
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Lawsuit> cq = cb.createQuery(Lawsuit.class);
Root<Lawsuit> root = cq.from(Lawsuit.class);
eu usodistinto para achatar os resultados:
cq.select(root).distinct(true);
Eu entãoJunte-se Lawsuit
comHearing
Join<Lawsuit, Hearing> hearing = root.join("hearings", JoinType.INNER);
para criarPredicate
s
predicateList.add(cb.isNotNull(hearing.<Date>get("date")));
eOrder
s:
orderList.add(cb.asc(hearing.<Date>get("date")));
Tudo funciona bem se eu evitardistinct
, mas se eu usá-lo, ele reclama de não poder fazer o pedido com base em campos que não estão no SELECT:
Causado por: org.postgresql.util.PSQLException: ERROR: forSELECT DISTINCT
, ORDER BY
expressões devem aparecer na lista de seleção
oList<Hearing>
já está acessível através doLawsuit
aulas retornaram, então estou confuso:como devo adicioná-los à lista de seleção?