Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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
Java 将列表传递给HQL或SQL中的IN子句?_Java_Hibernate_Hql_In Clause - Fatal编程技术网

Java 将列表传递给HQL或SQL中的IN子句?

Java 将列表传递给HQL或SQL中的IN子句?,java,hibernate,hql,in-clause,Java,Hibernate,Hql,In Clause,我通过执行查询获得列表。这必须传递给子句值中的另一个查询。如何在HQL中传递它们 我们可以将列表转换为数组,并可以传递它,这不是问题 最后,我必须将list或Array或String表单中的列表传递给in子句 from AUTOS a where a.model in (select m.model from MODELS m) 或 queryquery1=session.createQuery(“从Salary s中选择s.id,其中s.Salary49980”); Query query

我通过执行查询获得
列表
。这必须传递给子句值中的另一个查询。如何在HQL中传递它们

我们可以将
列表
转换为
数组
,并可以传递它,这不是问题

最后,我必须将
list
Array
String
表单中的列表传递给in子句

from AUTOS a where a.model in (select m.model from MODELS m) 

queryquery1=session.createQuery(“从Salary s中选择s.id,其中s.Salary<50000和s.Salary>49980”);
Query query2=session.createQuery(“来自雇员e,其中e.id位于(:id)”).setParameterList(“id”,query1.list());
query2.list();

我知道已经有一段时间了,您一直在尝试将不同查询的值作为queryParameter传递,您也可以使用'elements()'将集合或集合传递给HQL中的in子句-下面是一个简单的使用示例:

这也会起到同样的作用。。即使很晚了,也谢谢你的回复。。对其他人很有帮助。这是一个很好的答案,但是对于空集合不起作用。可以用一个查询来完成吗?就像sql中的子查询一样?终于得到了一些东西
Query query1 = session.createQuery("select s.id from Salary s where s.salary < 50000 AND s.salary > 49980");
Query query2 = session.createQuery("from Employee e where e.id in (:ids)").setParameterList("ids", query1.list());
query2.list();