【发布时间】: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?
【问题讨论】: