У меня есть класс Lawsuit, содержащий List<Hearing>, каждый из которых имеет атрибут Date.
Мне нужно выбрать все Lawsuit, упорядоченные по дате их Hearing s
У меня есть CriteriaQuery, например
CriteriaBuilder           cb = em.getCriteriaBuilder();
CriteriaQuery<Lawsuit>    cq = cb.createQuery(Lawsuit.class);
Root<Lawsuit>           root = cq.from(Lawsuit.class);
Я использую отличный, чтобы сгладить результаты:
cq.select(root).distinct(true);
Затем я  присоединяюсь к Lawsuit с помощью Hearing
Join<Lawsuit, Hearing> hearing = root.join("hearings", JoinType.INNER);
создать Predicate
predicateList.add(cb.isNotNull(hearing.<Date>get("date")));
и Order s:
orderList.add(cb.asc(hearing.<Date>get("date")));
Все работает отлично, если я избегаю distinct, но если я его использую, он жалуется на невозможность заказа на основе полей, которые не находятся в SELECT:
Вызывает: org.postgresql.util.PSQLException: ОШИБКА: для
SELECT DISTINCTвыраженияORDER BYдолжны отображаться в списке выбора
 List<Hearing> уже доступен через возвращаемые классы Lawsuit, поэтому я запутался:  как добавить их в список выбора?
