質問: Spring Data JPAの`CrudRepository`と`JpaRepository`のインターフェースの違いは何ですか? Web上の例を見ていると、この2つは互換性のあるように使われているのを見かけます。 両者の違いは何ですか? なぜどちらか一方を使いたいのでしょうか?
回答: 要するに **PagingAndSortingRepository** が **CrudRepository** を継承し、 **PagingAndSortingRepository** が **CrudRepository** を継承します。 **JpaRepository** は **PagingAndSortingRepository** を拡張します。 Spring Data JPAを使う上で知っておくべき重要なリポジトリインターフェースは3つあります **:**。 1. **CrudRepository**インターフェースはCRUD操作のためのメソッドを提供するので、独自のメソッドを定義しなくてもレコードの作成、読み込み、更新、削除を行うことができます。 2. 3. **PagingAndSortingRepository** は、ページングとソートを使用してエンティティを取得するための追加メソッドを提供します。 4. 5. **JpaRepository** には、JPA 固有のメソッドが追加されており、例えば [Query By Example][1]、バッチでの削除、データベースへの手動での変更のフラッシュ、およびクエリメソッドが `Iterable` の代わりに `List` を返すことをサポートしています。 これらのリポジトリインターフェースはすべて、トップレベルのSpring Data **Repository**インターフェースを直接または間接的に拡張します。 [1]: