相关疑难解决方法(0)

HQL中的Collection.contains(Enum.Value)?

我对如何在HQL中做某事感到困惑.

所以,假设我有一个Foo类,我坚持休眠.它包含一组枚举值,如下所示:

public class Foo
{
    @CollectionOfElements
    private Set<Bar> barSet = new HashSet<Bar>();

    //getters and setters here ...
}
Run Code Online (Sandbox Code Playgroud)

public enum Bar
{
    A,
    B
}
Run Code Online (Sandbox Code Playgroud)

是否有一个HQL语句我可以用来获取只有barSet包含Bar.B的Foo实例?

List foos = session.createQuery("from Foo as foo " +
"where foo.barSet.contains.Bar.B").list();
Run Code Online (Sandbox Code Playgroud)

或者我是不是要抓取所有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);
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

java collections hibernate hql

6
推荐指数
1
解决办法
8878
查看次数

标签 统计

collections ×1

hibernate ×1

hql ×1

java ×1