次のHQLクエリがある場合:
_FROM
Foo
WHERE
Id = :id AND
Bar IN (:barList)
_
QueryオブジェクトのsetInteger()
メソッドを使用して_:id
_を設定します。
オブジェクトのList
を使用して_:barList
_を設定したいのですが、Hibernateのドキュメントとメソッドのリストを見ると、使用する明らかな選択がわかりません。何か案は?
Query.setParameterList()
、 Javadoc here を使用します。
選択できるバリアントは4つあります。
HQLについてはわかりませんが、JPAでは、パラメーターとコレクションでクエリのsetParameter
を呼び出すだけです。
Query q = entityManager.createQuery("SELECT p FROM Peron p WHERE name IN (:names)");
q.setParameter("names", names);
ここで、names
は、検索する名前のコレクションです
Collection<String> names = new ArrayList<String();
names.add("Joe");
names.add("Jane");
names.add("Bob");
TorpedoQuery では次のようになります
Entity from = from(Entity.class);
where(from.getCode()).in("Joe", "Bob");
Query<Entity> select = select(from);