【问题标题】:Traversing associations inside of a Hibernate Criteria OR query在 Hibernate Criteria OR 查询中遍历关联
【发布时间】:2011-02-22 18:01:25
【问题描述】:

我有两个看起来像这样的对象:

public class Foo{
    List<Bar> bars;
    String name;
}

public class Bar {
    String value;
}

我想使用 Hibernate Criteria API 进行 OR 查询,该查询涉及 Foo 的两个属性。具体来说,我想选择所有具有name“somevalue”的Foos,或者在他们的bars集合中有一个Bar,该集合具有“anothervalue”的value

我知道如何独立完成这些:

createCriteria(Foo.class).add(Restrictions.eq("name","somevalue"));

and

createCriteria(Foo.class).createCriteria("bars").add(Restrictions.eq("value","anothervalue"));

(取自here

但是当我尝试将这些放在 Restrictions.or() 语句的任一侧时,它会给我一个编译错误。所以,我的问题是:这甚至可能使用 Criteria,还是我必须使用 HQL 或纯 SQL?

【问题讨论】:

    标签: java hibernate criteria


    【解决方案1】:

    就在我的脑海中,这行得通吗?

    Criteria criteria = session.createCriteria(Foo.class);
    criteria.createAlias("bars", "bar");
    String value = "somevalue";
    criteria.add(Restrictions.or(Restrictions.eq("name", value), Restrictions.eq("bar.name", value)));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2012-03-03
      相关资源
      最近更新 更多