Spring Data JPA中CrudRepository和JpaRepository接口的区别是什么?
当我在网上看到这些例子时,我发现它们是可以互换使用的。
它们之间的区别是什么?
为什么要用其中一种而不是另一种呢?
Spring Data JPA中CrudRepository和JpaRepository接口的区别是什么?
当我在网上看到这些例子时,我发现它们是可以互换使用的。
它们之间的区别是什么?
为什么要用其中一种而不是另一种呢?
当前回答
Crud Repository是基本接口,它充当标记接口。
JPA存储库还扩展了PagingAndSorting存储库。 它提供了所有对实现分页有用的方法。Crud Repository没有提供实现分页和排序的方法
你可以参考- https://www.tutorialspoint.com/difference-between-crudrepository-and-jparepository-in-java#:~:text=Crud%20Repository%20is%20the%20base,acts%20as%20a%20marker%20interface.&text=JPA%20repository%20also%20extends%20the,for%20implementing%20pagination%20and%20sorting。
其他回答
下面是CrudRepository和JpaRepository之间的区别:
克鲁德存储库
CrudRepository是一个基础接口,它扩展了Repository接口。 CrudRepository主要提供CRUD (Create, Read, Update, Delete)操作。 saveAll()方法的返回类型为Iterable。 用例—为了执行CRUD操作,定义扩展CrudRepository的存储库。
JpaRepository
JpaRepository扩展了PagingAndSortingRepository,后者扩展了CrudRepository。 JpaRepository提供了CRUD和分页操作,以及其他方法,如flush()、saveAndFlush()和deleteInBatch()等。 saveAll()方法的返回类型为List。 用例-为了执行CRUD和批处理操作,定义存储库extends JpaRepository。
我正在学习Spring Data JPA。它可能会帮助你:
简介:
PagingAndSortingRepository扩展了CrudRepository JpaRepository扩展PagingAndSortingRepository
CrudRepository接口为CRUD操作提供了方法,因此它允许您创建、读取、更新和删除记录,而无需定义自己的方法。
PagingAndSortingRepository提供了使用分页和排序检索实体的附加方法。
最后,JpaRepository添加了一些特定于JPA的更多功能。
所有的答案都为问题提供了足够的细节。不过,让我再补充一点。
为什么我们要使用这些接口:
它们允许Spring找到存储库接口并为它们创建代理对象。 它为您提供了允许您执行一些常见操作的方法(您也可以定义您的自定义方法)。我喜欢这个特性,因为创建一个方法(定义查询和准备好的语句,然后用连接对象执行查询)来做一个简单的操作真的很糟糕!
哪个接口做什么:
CrudRepository:提供CRUD功能 PagingAndSortingRepository:提供对记录进行分页和排序的方法 JpaRepository:提供JPA相关的方法,例如刷新持久化上下文和批量删除记录
何时使用哪个接口:
根据http://jtuts.com/2014/08/26/difference-between-crudrepository-and-jparepository-in-spring-data-jpa/
一般来说,最好的想法是使用CrudRepository或PagingAndSortingRepository,这取决于你是否需要排序和分页。
如果可能的话,应该避免使用JpaRepository,因为它将您的存储库绑定到JPA持久性技术上,在大多数情况下,您可能甚至不会使用它提供的额外方法。
Crud Repository是基本接口,它充当标记接口。
JPA存储库还扩展了PagingAndSorting存储库。 它提供了所有对实现分页有用的方法。Crud Repository没有提供实现分页和排序的方法
你可以参考- https://www.tutorialspoint.com/difference-between-crudrepository-and-jparepository-in-java#:~:text=Crud%20Repository%20is%20the%20base,acts%20as%20a%20marker%20interface.&text=JPA%20repository%20also%20extends%20the,for%20implementing%20pagination%20and%20sorting。