一尘不染

Spring + Hibernate与Spring Data JPA:有什么不同?

hibernate

尽管不是新手,但我仍在尝试学习spring框架,以确保我真的了解这一点。我对核心Spring(DI)有一个很好的主意。现在,我专注于数据层。

我遇到过“ spring和hibernate ” 这个词。正如我可以解释的那样,这意味着将Spring框架与Hibernate一起用作ORM工具/ JPA提供程序。

现在,我遇到了“ Spring Data JPA ”。我在SO上澄清了有关Spring Data JPA的问题,它是JPA之上的抽象层(Spring
Data JPA实际上使用Hibernate或任何其他JPA提供程序)。

现在这些术语相同吗?即“ Spring +hibernate ”与“ Spring Data JPA ”相同。如果没有,那么区别/相似之处是什么?

我真的对如此多的术语/陈述感到困惑(如上),它们看起来很相似,但可能有所不同。


阅读 219

收藏
2020-06-20

共1个答案

一尘不染

就像您说的那样,Spring-data-jpa提供的功能不只是经典的Spring-JPA集成。通过JPA / Hibernate集成,您可以获得

  • 使用JPA / Hibernate事务进行声明式事务管理
  • 异常翻译
  • JPA EntityManager或Hibernate SessionFactory作为可注入bean

使用Spring-data-jpa,您可以获得所有这些,以及(除其他外)

  • 仅限接口的存储库,使用方法名称自动推断查询
  • @Query注释定义接口方法应返回的查询
  • 自动处理可分页查询
  • 标准库的基本类

这只是一个很小的介绍。要获得更多帮助,请阅读文档。

2020-06-20