2013-08-06 35 views
1
riteria crit = sessionFactory.getCurrentSession() 
       .createCriteria(Order.class) 
       .setProjection(Projections.distinct(
        Projections.projectionList() 
        .add(Projections.property("this.id")) 
        .add(Projections.property("this.creationDate")) 
        .add(Projections.property("this.effectiveDate")) 
        .add(Projections.property("this.modificationDate")))) 
       .createAlias("this.consultation", "c") 
       .createAlias("c.institution", "institution") 

我正在尝试使用order.consultation.institution。可能吗? 要做到这一点...标准按亚类排序冬眠

crit.addOrder(org.hibernate.criterion.Order.desc("institution")); 

如果我想其他的子类,我想访问(多)。例如,如果我有类似于对象A的东西包含对象B包含对象C等。所以,A-> B-> C。

回答

0
.createAlias("this.consultation", "c") 
.setProjection(Projections.distinct(
Projections.projectionList() 
.add(Projections.property("this.id")) 
.add(Projections.property("this.creationDate")) 
.add(Projections.property("c.institution")) 

... 

crit.addOrder(org.hibernate.criterion.Order.desc("c.institution")); 

对于第二个问题,您可以访问您的litteraly和sublcass通过这样做(例如A-> B-> C)的方法

.createAlias("this.a", "a") 
.createAlias("a.b", "b") 
.createAlias("b.c", "c") 

等等..