在java hibernate中搜索列表包含列表中任何值的实体

Mis*_*akw 3 java entity hibernate

让我们想象一下,我有一些带有 java.List 标签的 Product 实体,如下所示:

@Entity
public class Product impements Serializable{
   ...
   private List<String> tags;
}
Run Code Online (Sandbox Code Playgroud)

我有用户想要搜索(例如)由以下任何标签标记的产品:汽车、摩托车、飞机。

因此,当涉及到搜索时,我的实体中有标签列表和搜索标签列表,我需要的只是在我的产品标签列表中至少包含其中之一。我不知道如何编写这样的查询。谢谢你的帮助

ben*_*y23 5

您可以使用以下 HQL 查询来执行此操作:

session.createQuery("from Product p join p.tags t where t = :tag")
       .setString("tag", tagToSearchFor)
Run Code Online (Sandbox Code Playgroud)


Mis*_*akw 5

在 beny23 发布他的解决方案之前,我通过添加来修复它

SELECT p FROM Product p, IN (p.tags) t where t in (:searchList)
Run Code Online (Sandbox Code Playgroud)

但他的回答也是正确的。