API)はHibernateを基盤としたSpringに最初から導入されているORMのことです。JPAの実装には下記のように非常に多くの実装方法があり用途に合わせて実装方法を変える必要があります。NamedNaticeQueryアノテーションによる実装ネイティブSQL:createNativeQueryメソッドで実装メソッドの命名規則に応じたSQLを生成してくれる:シンプルなクエリはほぼこの方法で可能カスタムRepositoryインターフェースを利用した実装(カスタムRepositoryインターフェースと呼ぶかは不明)今回はカスタムRepositoryインターフェースの実装方法とそのときに気をつけないといけないことを説明します。今回は説明の都合上、Personというエンティティを対象に実装方法の説明をします。準備するファイルPersonRepository(エンティティ名+Repository)PersonRepositoryCustom(エンティティ名+Repository+Custom)PersonRepositoryImp(エンティティ名+Repository+Impl)このとき注意することとしてファイル名の規則は間違わないようにしないといけません。自分はこの規則を知らずに勝手につけていたら下記エラーになりかなりの時間を浪費してしまいました。エラーからだとなぜプロパティ名が参照できないのか全く推測できないので気をつけてください。org.springframework.data.mapping.PropertyReferenceException1org.springframework.data.mapping.PropertyReferenceExceptionPersonRepository(Kotlin実装)定義したカスタムインターフェースを継承させるだけです。{}PersonRepositoryCustom(Kotlin実装)実装したいメソッドを定義するだけの普通のインターフェースです。Person}PersonRepositoryImp(Kotlin実装)カスタムインターフェースを継承してメソッドの中身を実装するだけです。簡易的にEntityManagerFactoryのDIやcreateNativeQueryの箇所は大雑把に簡略化させていただいています。注意点としてentityManagerのclose()を忘れないようにしてください。コネクションをずっと維持したままになってしまいます。コネクションプールの設定は下記を参照してください。resultList}}まとめJPAはいろんな実装方法があり混乱してしまうので初学者にとっては非常に難しく感じると思います。個人的にはこんなにいっぱい実装方法を準備している時点で微妙なフレームワークだなと感じています。上記で紹介したエラーは下記投稿を見つけて解決できたのでもし同じような方がいたら一読するのをお勧めします。https://stackoverflow.com/questions/20777785/org-springframework-data-mapping-propertyreferenceexception-no-property-catch-fおすすめ書籍JPAに関して体系的に学べる良い書籍だと思います。あるSpring系書籍ですとJPAは少ししか紹介がありませんが丸々一冊JPAに関してなので詳細な解説がされています。内容はJPAと他のORMとの比較から始まりセットアップ、実装の仕方まで幅広く網羅されています。Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。Incにブロックチェーンエンジニアとして入社。コメントをキャンセルメールアドレスが公開されることはありません。ROW_NUMBER関数で行番号を表示する方法Redshiftの設計前に知っておくべき分散キーとソートキーの役割RECOMMENDこちらの記事も人気です。