我有以下結構...排序依據和一對多 - 關係 - 條件查詢使用JPA 2.0
Entity A
- ...
- Collection<B> c (@OneToMany)
Entity B
- ...
- Date d
我希望QueryResult中由日期d通過在排序依據,聲明,責令我CriteriaQuery中。我怎樣才能做到這一點?
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<A> cq = cb.createQuery(A.class);
Root<A> r = cq.from(A.class);
cq.select(r);
// orderBy-Statement -> cq.orderBy(cb.desc(r.get("c.d")).as(Date.class)));
// Error: javax.servlet.ServletException: javax.ejb.EJBException: java.lang.IllegalArgumentException: Unable to resolve attribute [c.d] against path
List<A> l = em.createQuery(cq).getResultList();
是否有可能在查詢中排序? 如果不是,我應該寫一個方法來訂購我的resultList,對吧?