选择实体包含列表的位置,该列表是另一个列表的子集

jos*_*hua 12 jpa jpql

我正在写一个JPQL查询,我有以下场景.我有一个Question实体,其中包含一个Tags列表.我想选择包含给定标签列表的所有问题.我如何使用JPA执行此操作?

我想做一些像SELECT x FROM Question x WHERE x.tags'包含所有':标签的东西

Krz*_*rek 5

试试这样:

select distinct q from Question q join q.tags as t 
where t.name in (:tags) 
group by q.id, q.author, q.title, q.content,q.postedAt 
having count(t.id) = :size
Run Code Online (Sandbox Code Playgroud)


Nay*_*kar 3

[这搜索任何而不是全部;请参考其他正确答案。]

您可以将列表设置为参数。

SELECT x FROM Question x WHERE x.tags IN :tags
Run Code Online (Sandbox Code Playgroud)

还可以尝试使用 (:tags),因为它取决于您正在使用的 JPA 实现。