Spring 数据:用JpaRepository替换CrudRepository会有什么问题?
Spring Data: what problems could I have if I replace CrudRepository with JpaRepository?
我有几个存储库 classes。最初它们都扩展了 CrudRepository。对于 return 可分页记录的需要,我制作了一个存储库 class 扩展 JpaRepository,它提供的不仅仅是可分页的结果。
现在我正在考虑将所有CrudRepository 替换为JpaRepository,无论此时是否需要存储库class。
是否存在内存、速度等运行时问题?
感谢任何意见!
此致。
如果只需要分页抽象,可以考虑使用PagingAndSortingRepository
instead JpaRepository
。 JpaRepository
添加一些特定于 JPA 的功能,那么您可能不需要它。
关于内存和速度问题,在大多数情况下是不相关的。
因为它不是内存分页(例如SimpleJpaRepository
),在这种情况下你不会有内存问题。如果您没有使用 JPA 存储库实现,您只会注意到 JPA 开销,在大多数情况下仍然很小。
对于分页,需要一个额外的查询来统计记录,所以我们的开销很小。
SimpleJpaRepository
有 PagingAndSortingRepository
方法的 JPA 实现。例如,您可以使用 JDBC 编写自定义实现。请参阅 this 使用 JdbcTemplate
的 PagingAndSortingRepository
实施示例的要点
总的来说我认为是这样:)
我有几个存储库 classes。最初它们都扩展了 CrudRepository。对于 return 可分页记录的需要,我制作了一个存储库 class 扩展 JpaRepository,它提供的不仅仅是可分页的结果。
现在我正在考虑将所有CrudRepository 替换为JpaRepository,无论此时是否需要存储库class。
是否存在内存、速度等运行时问题?
感谢任何意见!
此致。
如果只需要分页抽象,可以考虑使用PagingAndSortingRepository
instead JpaRepository
。 JpaRepository
添加一些特定于 JPA 的功能,那么您可能不需要它。
关于内存和速度问题,在大多数情况下是不相关的。
因为它不是内存分页(例如SimpleJpaRepository
),在这种情况下你不会有内存问题。如果您没有使用 JPA 存储库实现,您只会注意到 JPA 开销,在大多数情况下仍然很小。
对于分页,需要一个额外的查询来统计记录,所以我们的开销很小。
SimpleJpaRepository
有 PagingAndSortingRepository
方法的 JPA 实现。例如,您可以使用 JDBC 编写自定义实现。请参阅 this 使用 JdbcTemplate
PagingAndSortingRepository
实施示例的要点
总的来说我认为是这样:)