【发布时间】:2013-08-25 17:03:56
【问题描述】:
我遇到了一个简单的问题;苦苦挣扎如何在joined 实体上调用order by。本质上,我试图通过JPA Criteria 实现以下目标:
select distinct d from Department d
left join fetch d.children c
left join fetch c.appointments a
where d.parent is null
order by d.name, c.name
我有以下几点:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery<Department> c = cb.createQuery(Department.class);
Root<Department> root = c.from(Department.class);
Fetch<Department, Department> childrenFetch = root.fetch(
Department_.children, JoinType.LEFT);
childrenFetch.fetch(Department_.appointments, JoinType.LEFT);
c.orderBy(cb.asc(root.get(Department_.name)));
c.distinct(true);
c.select(root);
c.where(cb.isNull(root.get(Department_.parent)));
order by d.name, c.name和Criteria API如何实现?我尝试了 Expression, Path 但没有用。
任何指针将不胜感激。
【问题讨论】:
标签: java jpa sql-order-by criteria-api