[解決済み] JPQL IN句。Java-Array(またはLists, Sets...)?
2022-08-13 05:41:11
質問
データベースから、小さいけれども任意の数の値のいずれかに設定された textual タグを持つすべてのオブジェクトをロードしたいと思います。SQL でこれを行う論理的な方法は、"IN" 節を作成することでしょう。JPQL では IN を使用できますが、IN へのすべてのパラメータを直接指定する必要があるようです ("in (:in1, :in2, :in3)" というように)。
IN 節の値に展開されるべき配列またはリスト (または他のコンテナー) を指定する方法はありますか?
どのように解決するのですか?
JPA1.0の場合はよくわかりませんが、JPA1.0の場合は
Collection
を渡すことができます。
String qlString = "select item from Item item where item.name IN :names";
Query q = em.createQuery(qlString, Item.class);
List<String> names = Arrays.asList("foo", "bar");
q.setParameter("names", names);
List<Item> actual = q.getResultList();
assertNotNull(actual);
assertEquals(2, actual.size());
EclipseLInkでテストしました。Hibernate 3.5.1では、パラメータを括弧で囲む必要があります。
String qlString = "select item from Item item where item.name IN (:names)";
しかし、これはバグで、先のサンプルのJPQLクエリは有効なJPQLです。参照 HHH-5126 .
関連
-
解決策:ユーザー root で localhost:3306 にある MySQL に接続できませんでした。
-
MHAの高可用性構成とフェイルオーバー
-
[解決済み] LINQでInclude()は何をするのですか?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] SQL Serverでシングルクォートをエスケープするにはどうすればよいですか?
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] MySQLでFULL OUTER JOINを行うにはどうすればよいですか?
-
[解決済み] Java Persistence APIにおけるFetchType LAZYとEAGERの違い?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] LINQでInclude()は何をするのですか?
-
[解決済み] SQL Serverで実行中の合計を計算する
-
[解決済み] MySQLの「スキーマの作成」と「データベースの作成」 - 違いはあるのか?
-
[解決済み] データベースのインデックス作成はどのように行われるのですか?[クローズド]
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] SQL Serverでシングルクォートをエスケープするにはどうすればよいですか?
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み] SQL ServerでINSERT INTOとしてデータをエクスポートする
-
[解決済み] SQL Serverで、ある日付より大きいすべての日付を照会するにはどうすればよいですか?