当前位置: 首页 > 编程笔记 >

Java中的CrudRepository和JPARepository之间的区别

高承望
2023-03-14
本文向大家介绍Java中的CrudRepository和JPARepository之间的区别,包括了Java中的CrudRepository和JPARepository之间的区别的使用技巧和注意事项,需要的朋友参考一下

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

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

我们需要在应用程序中扩展此存储库,然后才能访问这些存储库中可用的所有方法。我们还可以根据业务需求使用命名查询或本机查询添加新方法。

序号 JPAR存储库 Crud存储库
1 层次结构 JPA扩展了crudRepository和PagingAndSorting存储库 原始存储库是基本接口,它充当标记接口。
2 批量支持 JPA还提供了一些与JPA相关的方法,例如批量删除记录和将数据直接刷新到数据库。 它仅提供CRUD功能,例如findOne,save等。
3 分页支持 JPA存储库还扩展了PagingAndSorting存储库。它提供了可用于实现分页的所有方法。 Crud存储库不提供用于实现分页和排序的方法。
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);
}
 类似资料:
  • 问题内容: 我读到它是延迟加载的,并立即获取整个实体。我检查调试日志,我甚至能监视我的SQL服务器上看到的语句被执行的东西,我发现,无论和生成和执行相同的查询。但是,当我使用时,这些值最初为null(当然,除了id)。 因此,谁能告诉我,如果两种方法都在数据库上执行相同的查询,那为什么我要在另一种方法上使用呢?我基本上是在寻找一种获取实体而不获取其所有子代/属性的方法。 编辑1: 实体代码 道代码

  • 问题内容: Spring Data JPA 和接口之间有什么区别? 当我在网络上看到示例时,我发现它们在这里可以互换使用。它们之间有什么区别?你为什么要在另一个上使用? 问题答案: 延伸,延伸。 它们的主要功能是: 主要提供CRUD功能。 提供进行分页和排序记录的方法。 提供了一些与JPA相关的方法,例如刷新持久性上下文和批量删除记录。 由于继承如上所述, 将所有的功能和。所以,如果你不需要的仓库

  • 问题内容: 我正在考虑使用Hibernate保留我的模型。我似乎找到两种方法来做到这一点。 第一个使用,例如: 另一个使用带注释的子类/接口扩展: 另外,有时我看不到注释。有什么区别? 我没有找到“何时/应该使用前一种或后一种方法”的答案,因此我可以得到解释吗? 问题答案: 只是您可以在Spring docs网站上找到这些注释的描述。 很快,要回答您的问题,它们之间的区别是它们用于不同的目的。 用

  • 问题内容: 我知道已经解决了这个问题,但是我在SO上看到了不一致的论点。 所以,如果我有: 我得到 FALSE 。 据我了解,这是因为和是对同一对象()的两个不同引用。 所以我会有类似的东西: 现在,如果我只想比较两个字符串的 内容 ,我将使用 这是否意味着如果两个引用指向同一个对象,JVM就会简单地返回?因此,它不是在逐个字符地进行比较吗? 谢谢 编辑 拿着电话。感谢您指出优先顺序!!! 当我将

  • 我有一个简单的问题:为什么JpaRepository返回的是实体列表,而CrudRepository返回的是实体的迭代?

  • 问题内容: 正如问题标题本身所言,Java中的Executors和ExecutorCompletionService类之间有什么区别? 我是Threading的新手,所以如果有人可以用一段代码进行解释,那将会很有帮助。 问题答案: 假设您有一组任务,并且要在中异步执行每个任务,并在完成时按1逐个处理结果。 使用,您将像这样: 这种方法的问题是不能保证任务将首先完成。因此,当主线程可能正在处理另一个