Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Hibernate查询:如何在多个列中搜索?_Sql_Hibernate - Fatal编程技术网

Sql Hibernate查询:如何在多个列中搜索?

Sql Hibernate查询:如何在多个列中搜索?,sql,hibernate,Sql,Hibernate,我有一张桌子。它有多个包含tag1、tag2和tag3的列。只有3个标签列 数据库中的条目如下所示: Header: id, tag1, tag2, tag3 id1, ABC id2, ABC, XYZ id3 id4 PQR, XYZ id5 ABC, XYZ, PQR 如果用户通过[ABC],则应返回id1、id2和id3。 如果用户通过[ABC、PQR、XYZ],则应返回id5 它的Hibernate查询是什么?只需使用OR谓词即可 entityManager.createQuery(

我有一张桌子。它有多个包含tag1、tag2和tag3的列。只有3个标签列

数据库中的条目如下所示:

Header: id, tag1, tag2, tag3
id1, ABC
id2, ABC, XYZ
id3
id4 PQR, XYZ
id5 ABC, XYZ, PQR
如果用户通过[ABC],则应返回id1、id2和id3。 如果用户通过[ABC、PQR、XYZ],则应返回id5


它的Hibernate查询是什么?

只需使用OR谓词即可

entityManager.createQuery("FROM Entity e WHERE e.tag1 IN :list OR e.tag2 IN :list OR e.tag3 IN :list")
    .setParameter("list", userInputList)
    .getResultList();

不,这不适用于所有情况。我通过迭代列表并在(e.tag1,e.tag2,e.tag3)中使用“'value”解决了这个问题。仍然感谢您的回复。以下是我的代码:if(!CollectionUtils.isEmpty(getTagList()){query+=”(;)for(int index=0;index