SELECT DISTINCT + ORDER BY in der JPA 2 Criteria API

Ich habe eine KlasseLawsuit, das ein @ enthäList<Hearing>, jeder mit einemDate attribute.

Ich muss alle @ auswählLawsuits sortiert nach dem Datum ihresHearings

Ich habe eine CriteriaQuery wie

CriteriaBuilder           cb = em.getCriteriaBuilder();
CriteriaQuery<Lawsuit>    cq = cb.createQuery(Lawsuit.class);
Root<Lawsuit>           root = cq.from(Lawsuit.class);

Ich benutze distinct um die Ergebnisse zu reduzieren:

cq.select(root).distinct(true);

Ich habe dannbeitrete Lawsuit mitHearing

Join<Lawsuit, Hearing> hearing = root.join("hearings", JoinType.INNER);

erschaffenPredicates

predicateList.add(cb.isNotNull(hearing.<Date>get("date")));

undOrders:

orderList.add(cb.asc(hearing.<Date>get("date")));

Alles funktioniert gut, wenn ich @ vermeiddistinct, aber wenn ich es benutze, beschwert es sich, dass es nicht in der Lage ist, basierend auf Feldern zu bestellen, die nicht in SELECT enthalten sind:

Verursacht durch: org.postgresql.util.PSQLException: ERROR: forSELECT DISTINCT, ORDER BY Ausdrücke müssen in der Auswahlliste erscheinen

DasList<Hearing> ist bereits über das @ erreichbLawsuit Klassen zurückgegeben, also bin ich verwirrt:wie soll ich sie zur Auswahlliste hinzufügen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage