gpt4 book ai didi

spring - 使用 Spring Data JPA 的 JpaRepository 和 CrudRepository 之间到底有什么区别?

转载 作者:行者123 更新时间:2023-12-04 07:33:51 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is difference between CrudRepository and JpaRepository interfaces in Spring Data JPA?

(7 个回答)


5年前关闭。




我正在处理 Spring Boot 使用 的应用程序Spring Data JPA (在 Hibernate 4 上)访问我的数据库。

我的疑问与 有关道 接口(interface)(由 JPA 用于自动生成查询)。

所以,在我的项目中,我有这两个接口(interface):

1) 住宿DAO :

@Repository
@Transactional(propagation = Propagation.MANDATORY)
public interface AccomodationDAO extends JpaRepository<Accomodation, Long> {

Accomodation findById(@Param("id") Long id);

}

2) EventDAO :
public interface EventDAO extends CrudRepository<Event, Integer> {

public Event findByLocation(Point location);

public Event findById(@Param("id") Integer id);

}

它们都可以正常工作并使用相同的逻辑来声明查询。

我唯一的疑问是:第一个扩展 JpaRepository 而第二个实现 CrudRepository .

之间到底有什么区别? JpaRepository CrudRepository ?什么是最好的选择,或者在什么情况下更好地使用一个而不是另一个选择?

另一个疑问是:为什么我定义的 DAO 接口(interface)会扩展 JpaRepository CrudRepository 那些本身就是接口(interface)?据我所知,接口(interface)已实现而不是扩展......我错过了什么?

最佳答案

请注意,JpaRepository 扩展了 CrudRepository。比较这两个接口(interface)的JavaDoc:

JpaRepository 对比 CrudRepository

总之JpaRepository

  • 具有额外的 JPA 特定方法,例如支持 QueryBy Example ,批量删除,手动刷新数据库更改
  • 查询方法返回 List的而不是 Iterable

  • 如果你使用 JPA,你应该使用 JpaRepository。

    关于spring - 使用 Spring Data JPA 的 JpaRepository 和 CrudRepository 之间到底有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40382741/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com