私は次のようなエンティティを持っています:
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;
}
}
現在、IDが「a」、「b」、または「c」のバー要素を含むすべての要素fooにクエリを実行しようとしていますが、それを機能させることができません。
次の2つのアプローチを試しました。
select from FOO as f where f.bars in elements
(select b.id from T_BARS as b where b.bar in elements('a','b','c'))
これにより、QuerySyntaxExceptionが発生します:T_BARSがマップされていません
私の2番目のアプローチは次のとおりです。
select from FOO as f where elements('a','b','c') in elements(f.bars)
これにより、QuerySyntaxExceptionの予期しないトークンが生成されます
編集:私はenversを使用しているので、結合は不可能のようです!?