Java中CrudRepository和JPARepository的区别


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

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

我们需要在我们的应用程序中扩展这个repository,然后我们就可以访问这些repository中所有可用的方法。我们还可以根据业务需求,使用命名查询或原生查询添加新方法。

序号关键点JPARepositoryCrudRepository
1继承关系JPA扩展了crudRepository和PagingAndSorting repositoryCrud Repository是基本接口,充当标记接口。
2批量支持JPA还提供了一些与JPA相关的额外方法,例如批量删除记录和直接将数据刷新到数据库。它只提供CRUD功能,例如findOne、save等。
3分页支持JPA repository也扩展了PagingAndSorting repository。它提供了所有对实现分页有用的方法。Crud Repository不提供实现分页和排序的方法。
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);
}

更新于:2019年11月18日

21K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告