45

List<Strings>通过执行查询得到。这必须传递给另一个IN子句值查询。如何在HQL中传递它们?

我们可以转换ListArray可以通过它,这不是问题。

最后,我必须将列表 in List<String>or Arrayor Stringform 传递给IN子句。

4

2 回答 2

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

或者

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();
于 2012-10-01T06:49:41.693 回答
3

我知道已经有一段时间了,您一直在尝试将不同查询的值作为 queryParameter 传递,您还可以使用“ elements() ”将集合或集合传递给 HQL 中的 in 子句 - 这是此类用法的简单示例: Hibernate 查询:Set 是否包含某个 Object?

于 2015-02-13T09:28:28.330 回答