Java中的CrudRepository和JPARepository之间的区别

CrudRepository和JPA仓库都是spring数据仓库库的接口。Spring数据存储库通过提供一些预定义的查找器来访问各种持久层的数据层,从而减少了样板代码。

JPA存储库扩展了CrudRepository和PagingAndSorting存储库。它从Crud存储库(例如findOne)继承了一些查找器,获取并删除了一个实体。它还提供了一些与JPA相关的方法,例如批量删除记录,将数据直接刷新到数据库库以及与分页和排序有关的方法。

我们需要在应用程序中扩展此存储库,然后才能访问这些存储库中可用的所有方法。我们还可以根据业务需求使用命名查询或本机查询添加新方法。

序号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);
}