Java中CrudRepository和JPARepository的区别
CrudRepository和JPA repository都是Spring Data repository库的接口。Spring Data repository通过提供一些预定义的查找器来访问各种持久层的数据层,从而减少了样板代码。
JPA repository扩展了CrudRepository和PagingAndSorting repository。它继承了Crud repository的一些查找器,例如findOne、获取和删除实体。它还提供了一些与JPA相关的额外方法,例如批量删除记录、直接将数据刷新到数据库以及与分页和排序相关的方法。
我们需要在我们的应用程序中扩展这个repository,然后我们就可以访问这些repository中所有可用的方法。我们还可以根据业务需求,使用命名查询或原生查询添加新方法。
序号 | 关键点 | JPARepository | CrudRepository |
---|---|---|---|
1 | 继承关系 | JPA扩展了crudRepository和PagingAndSorting repository | Crud 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); }
广告