将具有ManyToMany关系的实体与Set的任何元素匹配

时间:2013-05-25 14:40:36

标签: java jpa jpql

在JPA / JQL中,我输入Set<Tag>,我想查找与输入集(:tags)中至少一个标记关联的实体。

Tagged实体有一个属性标记

@ManyToMany
private Set<Tag> tags;

查询应该如何?我试过了

SELECT t FROM Tagged t WHERE t.tags = ANY(:tags)

但这不正确。有谁知道正确的查询应该如何?

示例:如果标记实体包含标记("one", "two", "tree")且我的:tags输入参数是一组标记("three", "four"),我希望匹配,因为{{ 1}}是共同的。

1 个答案:

答案 0 :(得分:1)

我不相信ANY(subquery)正是您所寻找的。我会改用inner join。像这样:

SELECT DISTINCT t FROM Tagged t JOIN t.tags tag WHERE tag IN :tags