如何使用条件Api检索集合属性

时间:2010-08-31 10:42:54

标签: hibernate criteria

我想使用条件

检索集合属性
   public class A {  
       private Collection<B> property  
       // getters and setters
   }  
   public class B {
      private int status
      // getters and setters
   }

我的标准代码如下:

Criteria cr = getSession().createCriteria(A.class)     
cr.createAlias("property", "prop")
cr.add(Restrictions.eq("prop.status", status));
cr.setProjection(Projections.property("prop"));
cr.list();

显然这段代码不起作用我想简单地展示我的意图。我知道如何使用HQL实现这一点,但我必须使用Criteria API。我的目标是使用Criteria吗?

2 个答案:

答案 0 :(得分:0)

这个解决方案有什么问题?

Criteria cr = getSession().createCriteria(B.class);
 cr.add(Restrictions.eq("status", status));
 cr.list(); 

答案 1 :(得分:0)

不幸的是,Hibernate Criteria无法实现我想要实现的目标。如果有人需要类似的东西,你应该创建一个namedQuery,就像你可能会那么糟糕或只是使用hql。

彼得