我对如何在HQL中做某事感到困惑.
所以,假设我有一个Foo类,我坚持休眠.它包含一组枚举值,如下所示:
public class Foo
{
@CollectionOfElements
private Set barSet = new HashSet();
//getters and setters here ...
}
和
public enum Bar
{
A,
B
}
是否有一个HQL语句我可以用来获取只有barSet包含Bar.B的Foo实例?
List foos = session.createQuery("from Foo as foo " +
"where foo.barSet.contains.Bar.B").list();
或者我是不是要抓取所有Foo实例并在DAO级别过滤掉它们?
List foos = session.createQuery("from Foo as foo").list();
List results = new ArrayList();
for(Foo f : foos)
{
if(f.barSet.contains(Bar.B))
results.add(f);
}
谢谢!