【问题标题】:How can I retrieve a collection property using criteria Api如何使用条件 Api 检索集合属性
【发布时间】:2010-08-31 10:42:53
【问题描述】:

我想使用标准检索集合属性

   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 吗?

【问题讨论】:

    标签: hibernate criteria


    【解决方案1】:

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

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

    【讨论】:

    • 我需要 A.property 集合,而不仅仅是数据库中具有特定状态的所有 B 实例。我需要所有 B 以提供的状态连接到 A。不幸的是,B 没有引用 A(如果是这种情况,我不会问问题),只是 A 0..* B 连接问候,彼得
    【解决方案2】:

    不幸的是,使用 Hibernate Criteria 无法实现我想要实现的目标。如果有人需要类似的东西,你应该创建一个 namedQuery ,尽可能地对你来说或者只是使用 hql。

    彼得

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 2017-06-02
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      相关资源
      最近更新 更多