JPAのNativeQueryでIN句を使う方法ツイートシェアはてブLINEPocketJPAJPAにはJPQLというJPA上で使えるSQLみたいなものや、NativeQueryを使用して生のSQLを書くことができます。生のSQLには変数を埋め込むことができるのですが、生のSQLのIN句に値を渡す方法が予想と違ったのでまとめます。MySQLの場合MySQLでSQLを書く場合はIN句には下記のようにカンマ区切りの値を渡すのでNativeQueryにもカンマ区切りの値を渡してみました。(1,2,3)するとエラーになることなく先頭の値に該当するレコードだけ取得できるという現象が起きました。ことエラーにしてくれた方がわかりやすいんですけどね。このせいでSQLとは関係ないところばかりソースコードを調べて無駄に時間を浪費してしまいました。NativeQueryJPAで実際にNativeQueryを使用するためのソースコードは下記です。Kotlinで書いてます。query.getResultList()em.close():idListにはカンマ区切りの文字列ではなくintの配列を渡しています。あと最後は必ずclose()しましょう。close()しないとコネクションプーリング設定をしているのにコネクションを維持したままになってしまいます。いうのは知らないと無駄に時間を使ってしまうので頭の片隅に入れて起きましょう。以上です!おすすめ書籍JPAに関して体系的に学べる良い書籍だと思います。あるSpring系書籍ですとJPAは少ししか紹介がありませんが丸々一冊JPAに関してなので詳細な解説がされています。内容はJPAと他のORMとの比較から始まりセットアップ、実装の仕方まで幅広く網羅されています。Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。Incにブロックチェーンエンジニアとして入社。コメントをキャンセルメールアドレスが公開されることはありません。Bootのテストコードで使うアノテーション解説RECOMMENDこちらの記事も人気です。