2013-08-06 41 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") 

等等..