彩票网站建设策划书,网站开发设计费 怎么入账,wordpress 增加小工具栏,php网站开发实施方案1 问题描述Spring Data JPA 中#xff0c;CrudRepository 和 JpaRepository 有何区别#xff1f;当我在网上找例子的时候#xff0c;发现它们可以互相替换使用。它们有什么不同呢#xff1f;为什么你习惯用其中的一个而不是另一个呢#xff1f;2 CrudRepository 和 JpaRep…1 问题描述Spring Data JPA 中CrudRepository 和 JpaRepository 有何区别当我在网上找例子的时候发现它们可以互相替换使用。它们有什么不同呢为什么你习惯用其中的一个而不是另一个呢2 CrudRepository 和 JpaRepository 的具体区别2.1 功能上的区别JpaRepository 扩展了 PagingAndSortingRepository而 PagingAndSortingRepository 又扩展了 CrudRepository。它们的主要功能CrudRepository 主要提供 CRUD 增删改查功能PagingAndSortingRepository 提供了执行分页和排序数据的方法JpaRepository 则提供了一些与 JPA 相关的方法比如刷新持久性上下文和删除批处理中的记录而根据上面讲到的继承关系JpaRepository 将拥有 PagingAndSortingRepository 和 CrudRepository 所提供的所有功能。因此如果你不需要使用 PagingAndSortingRepository 和 JpaRepository 提供的额外功能那么使用 CrudRepository 就足够了。2.2 使用场景(用途)上的区别回答 1 的说法完全正确但我想针对你说的为什么习惯使用其中一个而并非另一个做出解释。基础知识一般我们为存储库所选用的基本几口主要有两个用途。一个是允许 Spring JPA 存储库基础设施查找对应接口并触发代理创建以便将接口实例注入到客户端。另外一个则是在不声明额外方法的情况下将所需功能尽可能地引入接口中。通用接口Spring Data 核心库提供了两个基本接口CrudRepository - CRUD 增删改查方法PagingAndSortingRepository - 扩展 CrudRepository主要是分页和排序方法特定存储接口各个存储模块如 JPA 或 MongoDB公开了用于特定存储的扩展接口以方便访问特定存储的功能如刷新或专用的批处理操作。我们一般不建议使用这些特定接口因为它们向客户端暴露了底层持久化的接口加强了它们和存储库之间的耦合。自定义存储接口依赖提供的通用接口存在两个主要缺点根据 Spring Data 数据接口的不同存储库接口与存储库相耦合通过扩展 CrudRepository就会立马暴露其中的持久化方法总结存储库抽象允许我们自由选择完全由体系结构和功能需求所驱动的基础库。如果合适我们可以使用开箱即用的方法。而如果有必要我们也可以自己设计自己的存储接口。如非必要尽量不要使用特定存储接口。2.3 实现方法上的区别总结JpaRepository 扩展了 PagingAndSortingRepositoryPagingAndSortingRepository 扩展了 CrudRepositoryCrudRepository 为接口提供了 CRUD 操作提供了方法因此它允许创建、读取、更新和删除记录而不用自己去定义方法PagingAndSortingRepository 提供了使用分页和排序检索实体的其他方法