Spring Data JPA CrudRepository
和JpaRepository
接口之间有什么区别?
当我在网络上看到示例时,我发现它们在这里可以互换使用。它们之间有什么区别?你为什么要在另一个上使用?
JpaRepository
延伸PagingAndSortingRepository
,延伸CrudRepository
。
它们的主要功能是:
CrudRepository
主要提供CRUD功能。PagingAndSortingRepository
提供进行分页和排序记录的方法。JpaRepository
提供了一些与JPA相关的方法,例如刷新持久性上下文和批量删除记录。JpaRepository
将所有的功能CrudRepository
和PagingAndSortingRepository
。所以,如果你不需要的仓库有提供的功能JpaRepository
和PagingAndSortingRepository
,使用CrudRepository
。本文向大家介绍Java中的CrudRepository和JPARepository之间的区别,包括了Java中的CrudRepository和JPARepository之间的区别的使用技巧和注意事项,需要的朋友参考一下 CrudRepository和JPA仓库都是spring数据仓库库的接口。Spring数据存储库通过提供一些预定义的查找器来访问各种持久层的数据层,从而减少了样板代码。 JPA存储
问题内容: 我读到它是延迟加载的,并立即获取整个实体。我检查调试日志,我甚至能监视我的SQL服务器上看到的语句被执行的东西,我发现,无论和生成和执行相同的查询。但是,当我使用时,这些值最初为null(当然,除了id)。 因此,谁能告诉我,如果两种方法都在数据库上执行相同的查询,那为什么我要在另一种方法上使用呢?我基本上是在寻找一种获取实体而不获取其所有子代/属性的方法。 编辑1: 实体代码 道代码
在Spring构建存储库时,在我的存储库界面中,我使用以下内容扩展它 扩展CrudRepository 但是我注意到JpaRepository的使用,请参阅下面的示例
问题内容: 我不清楚两者之间的区别。 谢谢 问题答案: 它们非常相似,但是存在一些重要的技术差异: 抽象类允许您为某些方法提供默认的实现,但是接口不允许您提供任何实现。 您可以实现多个接口,但只能从一个抽象类继承。 这些差异影响应使用两种技术的方式: 您应该使用接口来 定义合同 。 抽象类对于 重用代码 很有 用 ……但是请注意,它不是重用代码的唯一方法。您还应该考虑其他方法,例如遏制。
文档中说,它们都监听Firebase数据库位置的更改。
我的怀疑与DAO接口(由JPA用于自动生成查询)有关。 因此,在我的项目中,我有两个接口: 1)住宿道: 另一个疑问是:为什么我定义的DAO接口扩展了本身就是接口的JPararePository和CrudRepository?据我所知,接口是实现的,而不是扩展的...我错过了什么?