在Spring Boot中,扩展Java repository接口时,CrudRepository和JpaRepository有什么区别?

3

在Spring中构建仓库时,我在仓库接口中使用以下方式进行扩展:

extends CrudRepository<EntityName, EntityType>,其中EntityName是我的实体类名称,EntityType设置为默认类型Long,如下面的示例代码所示:

@Repository
public interface RoomRepository extends CrudRepository<Room, Long> {
}

然而,我注意到使用JpaRepository,如下所示的示例

public interface RoomRepository extends JpaRepository<Room, UUID>{

    public Boolean existsRoom(String roomNumber);
    
}
1个回答

2

CrudRepository vs JpaRepository

JpaRepository扩展了PagingAndSortingRepository,而PagingAndSortingRepository又扩展了CrudRepository。
1. CrudRepository主要提供CRUD函数。 2. PagingAndSortingRepository提供分页和排序记录的方法。 3. JpaRepository提供一些与JPA相关的方法,如清空持久化上下文和批量删除记录。
由于上述继承关系,JpaRepository将拥有CrudRepository和PagingAndSortingRepository的所有功能。
因此,如果您不需要仓库具有JpaRepository和PagingAndSortingRepository提供的功能,请使用CrudRepository。
参考: https://www.javatpoint.com/spring-boot-crud-operations#:~:text=CrudRepository%20does%20not%20provide%20any,works%20as%20a%20marker%20interface

在构建具有持久性数据访问的Java应用程序时,代码中使用CrudRepository和JpaRepository来扩展存储库接口。CrudRepository是一个基本标记接口,具有基本的CRUD功能,而JPARepository扩展了CrudRepository,并具有更多的JPA数据访问方法,包括分页和排序。 - iamdeed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接