我有以下结构...排序依据和一对多 - 关系 - 条件查询使用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,对吧?