2010-07-16 44 views
3

爲什麼這是不可能的?休眠 - 標準後的標準後的setProjection

Criteria crit1 = sess.createCriteria(Criteria1Class.class); 
Criteria crit2 = crit1.createCriteria("criteria2Class"); 

crit2.setProjection(Projections.groupProperty("criteria2Property")); 
List<String> l2 = crit2.list(); 

如果我用這個結構我得到的錯誤:

could not resolve property: criteria2Property of: com.foo.bar.models.Criteria1Class 

offcourse criteria2Property不Criteria1Class存在,因爲它在Criteria2Class

存在,所以這是爲什麼groupProperty不可能的@manyToOne協會從Criteria1ClassCriteria2Class

回答

2

解決它自己:

Criteria crit1 = sess.createCriteria(Criteria1Class.class) 
        .createAlias("criteria2Class","criteria2ClassAlias") 
        .setProjection(Projections.groupProperty("criteria2ClassAlias.criteria2Property")); 

crit1.list();