Java ';元素(foo.elements)中的元素(a、b、c)和#x27;在hql中?

Java ';元素(foo.elements)中的元素(a、b、c)和#x27;在hql中?,java,hibernate,hql,hibernate-envers,Java,Hibernate,Hql,Hibernate Envers,我有一个实体如下: public class Foo { private List<String> bars; @ElementCollection(fetch=FetchType.LAZY) @CollectionTable(name="T_BARS", joinColumns=@JoinColumn(name = "ID")) @Column(name="BAR") public List<String> getBars()

我有一个实体如下:

public class Foo {

    private List<String> bars;

    @ElementCollection(fetch=FetchType.LAZY)
    @CollectionTable(name="T_BARS", joinColumns=@JoinColumn(name = "ID"))
    @Column(name="BAR")
    public List<String> getBars() {
        return bars;
    }
}
这将产生QuerySyntaxException:T_条未映射

我的第二种方法是:

select from FOO as f where elements('a','b','c') in elements(f.bars)
这将生成QuerySyntaxException意外标记


编辑:我正在使用envers,所以连接似乎不可能

似乎在中的envers中不可能进行连接,因此我最终拆分了查询。它并不优雅,但它确实起到了作用,而且提供的列表永远不会太大:

select from FOO as f where
('a' in elements(f.bars)
  or 'b' in elements(f.bars)
  or 'c' in elements(f.bars)
  or ...)
...

Bar的属性是什么?正如您所看到的,它是映射在T|u BARS表中的字符串列表,因此该表将包含ID|Bar
select from FOO as f where
('a' in elements(f.bars)
  or 'b' in elements(f.bars)
  or 'c' in elements(f.bars)
  or ...)
...