HibernateToolsプラグインのHQLエディターで配列パラメーターをバインドするにはどうすればよいですか?クエリパラメータタイプリストには、配列またはコレクションは含まれていません。
例:
Select * from Foo f where f.a in (:listOfValues)
。
配列をそのlistOfValuesにバインドするにはどうすればよいですか?
おそらくできません。Hibernate は、データベースから取得したオブジェクトを独自のオブジェクト (一種のプロキシ) に置き換えます。Hibernate は配列でそれを行うことができないと強く思います。したがって、配列データをバインドする場合は、Hibernate によるアクセス時にリストに入れます。
例として、次のことができます。
select * from Foo f where f.a in f.list
あなたはすでにこれに対する答えを持っていると確信していますが、これを見ている他の人にとっては。Hibernateツール用のHQLエディターはコレクションのクエリをサポートしていないようです。Hibernate Tools HQLエディターでのテスト中に、パラメーターを使用してハードコーディングする必要はありません。
Select * from Foo f where f.a in (123,1234)
クエリを、コードに戻したときにbouttaが投稿したものに戻します。
これは、リストを HQL クエリに渡す方法です。私は HQL エディターに詳しくありません... 私たちは Nhibernate の世界から来ました。
select * from Foo f where f.a in (:foolist)
query.SetParameterList("foolist", list)