当前位置: 首页 > 面试题库 >

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

汝弘深
2023-03-14
问题内容

尽管不是新手,但我仍在尝试学习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 ”相同。如果没有,那么区别/相似之处是什么?

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


问题答案:

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

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

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

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

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



 类似资料:
  • 虽然不是新手,但我正在尝试学习spring框架(又一次!)为了确定我真的明白这一点。我对核心Spring(DI)有相当的想法。现在,我将重点放在数据层上。 这些术语相同吗?即“Spring+Hibernate”是否与“Spring Data JPA”相同。如果不是,那么区别/相似点是什么? 我真的对这么多看似相似,但可能不同的术语/陈述(如上)感到困惑。

  • 我想知道Spring boot JPA是如何使用hibernate的,Spring boot JPA和hibernate之间有什么关系吗?当我们使用boot jpa时,我们只是实现了org.springframework.data.jpa.repository.jparepository接口,可以使用与列名匹配的函数名编写查询,也可以编写自定义查询,那么hibernate在这里的角色是什么?我们怎

  • 我刚刚开始使用MongoDB,我注意到它使用BSON在内部存储数据。然而,关于什么是BSON以及如何在MongoDB中使用BSON,文档并不十分清楚。有人能给我解释一下吗?

  • 问题内容: Hibernate和Spring Data JPA之间的主要区别是什么?什么时候不应该使用Hibernate或Spring Data JPA?另外,Spring JDBC模板何时可以比Hibernate / Spring Data JPA更好地执行? 问题答案: Hibernate是一个JPA实现,而Spring Data JPA是一个JPA数据访问抽象。没有JPA提供程序,Sprin

  • lxd如何在容器中提供完整的操作系统功能,而不仅仅是单个进程? 它与lxc/docker包装器有何不同? 它是否类似于一个容器,在一个容器中包含多个进程? 换言之: 在lxc和docker上使用一些包装器做不到的lxd可以做什么

  • Hibernate和Spring数据JPA之间的主要区别是什么? 我们什么时候不应该使用Hibernate或Spring数据JPA? 此外,何时SpringJDBC模板可以比Hibernate和SpringDataJPA性能更好?