[解決済み] JPAクエリにIN句リストを追加する
2022-05-07 23:06:55
質問
以下のようなNamedQueryを作りました。
@NamedQuery(name = "EventLog.viewDatesInclude",
query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
+ "el.timeMark <= :dateTo AND "
+ "el.name IN (:inclList)")
私がやりたいのは、パラメータ :inclList に、1つの項目ではなく、項目のリストを記入することです。 例えば、もし私が
new List<String>() { "a", "b", "c" }
inclListパラメータでどのように取得するのですか? 1つの文字列しかコーディングできない。 例えば、こんな感じです。
setParameter("inclList", "a") // works
setParameter("inclList", "a, b") // does not work
setParameter("inclList", "'a', 'b'") // does not work
setParameter("inclList", list) // throws an exception
文字列をビルドして、そこからクエリ全体をビルドすることもできるのですが、オーバーヘッドを避けたかったんです。 何か良い方法はないでしょうか?
関連する質問:リストが非常に大きい場合、そのようなクエリを作成する良い方法はありますか?
どのように解決するのですか?
使用時
IN
をコレクション値パラメータで指定すると、不要になります。
(...)
:
@NamedQuery(name = "EventLog.viewDatesInclude",
query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
+ "el.timeMark <= :dateTo AND "
+ "el.name IN :inclList")
関連
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
ファインバグタイプ
-
Dateが型に解決できない問題を解決する
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
ローカルリソースのロードが許可されていない場合の解決策
-
[解決済み] Javaで配列をリストに変換する
-
[解決済み] JPA EntityManager。なぜmerge()ではなくpersist()を使うのか?
-
[解決済み] Javaでリストを反復処理する方法
-
[解決済み】JPA JoinColumnとmappedByの比較
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
Java Exceptionが発生しました エラー解決
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
[解決済み] java.sql.SQLException: ORA-00932: データ型の不一致: 期待した NUMBER は BINARY になりました。
-
Dateが型に解決できない問題を解決する
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
Javaクラスローダーにソースコードから潜り込む
-
javaでクラスを作成すると、enclosing classでないように見える
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決