2012-09-29 24 views
32

私はList<Strings>を取得します。これは、IN句の値の別のクエリに渡す必要があります。 でそれらを渡す方法HQLHQLまたはSQLのIN句にリストを渡しますか?

ListArrayに変換して渡すことは問題ありません。

最後に、私は IN句List<String>またはArrayまたはString形式でリストを渡す必要があります。

答えて

66
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(); 
+0

これは、複合のIDで動作しますか? – rexdefuror

+2

これは良い答えですが、空のコレクションでは機能しません。 – Jagger

+0

は1つのクエリでそれを行うことは可能ですか?サブクエリを持つSQLのような? – tObi

3

私はそれはしばらくしている知っているとあなたがqueryParameterとして別のクエリの値を渡すようにしようとしている、あなたはまた、HQLでの句で設定するか、またはコレクションに渡すことができます「要素()」で - ここでは、このような使い方の簡単な例です: Hibernate query: does a Set contains a certain Object?

+0

これは同じことをするでしょう..遅くても返事のためのおかげで..他の人に役立つ.. –

関連する問題