jpa2 CriteriaBuilder порядок по "выражения ORDER BY должны появиться в списке выбора"
Я пишу запрос с помощью CriteriaBuilder, но добавить предложение по предложению не удалось, поскольку в списке выбора должна появиться ошибка с выражениями ORDER BY, это мои объекты.
public class A{
Integer aId;
@ManyToOne
@JoinColumn(name = "bId", nullable = false)
B classB;
//setter and getter.
}
public class B{
Integer bId;
String name;
//setter and getter.
}
мой запрос выглядит так.
CriteriaBuilder cb = super.getEntityManager().getCriteriaBuilder();
CriteriaQuery<A> cq = cb.createQuery(A.class);
Root<A> aRoot = cq.from(A.class);
Join<A, B> joinB = aRoot.join("b", JoinType.INNER);
cq.distinct( true );
cq.orderBy( cb.asc( joinB.get("name") ));
return super.getEntityManager().createQuery(cq).getResultList();
Это sql tha hibernate генерирует.
select
distinct a0_.aId as aId,
a0_.bId as bId,
from
a a0_
inner join
b b2_
on a0_.aId=b2_.bId
order by
b2_.name asc //this is where the error comes
Как вы видете. B этого нет в предложении select. Итак, как мне добавить B?