English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaにおけるCrudRepositoryとJPARepositoryの違い

正文

CrudRepositoryおよびJPAリポジトリは、Springデータリポジトリのインターフェースです。Springデータリポジトリは、さまざまな持久層データレイヤーにアクセスするために、いくつかのプレデファインドのクエリを提供することで、サンプルコードを減少させます。

これらのリポジトリで利用可能なすべてのメソッドにアクセスするには、アプリケーションでこのリポジトリを拡張する必要があります。また、ビジネス要件に応じて、ネームクエリまたはネイティブクエリを使用して新しいメソッドを追加することもできます。

順序キーJPARリポジトリCrudリポジトリ
1階層JPAは、crudRepositoryおよびPagingAndSortingリポジトリを拡張します。オリジナルリポジトリは、基本インターフェースであり、マークインターフェースとして機能します。
2バッチサポートJPAは、JPAに関連するメソッド(例えば、レコードのバッチ削除、データを直接データベースに刷新するなど)も提供します。CRUD機能(例えば、findOne、saveなど)のみを提供します。
3ページングサポートJPAリポジトリは、PagingAndSortingリポジトリを拡張しており、ページングを実現するためのすべてのメソッドを提供します。Crudリポジトリは、ページングおよびソートを実現するためのメソッドを提供しません。
4用例JpaRepositoryは、JPAの持久化技術とリポジトリを連携させるため、それを使用することを避けるべきです。CrudRepositoryまたはPagingAndSortingRepositoryを使用するかどうかは、ソートおよびページングが必要かどうかによって異なります。

JpaRepositoryの例

@Repository
public interface BookDAO extends JpaRepository {
   Book findByAuthor(@Param("id") Integer id);
{}

CrudRepositoryの例

@Repository
public interface BookDAO extends CrudRepository {
   Book Event findById(@Param("id") Integer id);
{}