在本教程中,我们将了解Hibernate 和Spring Data JPA之间的区别。
Hibernate 是 JPA 的实现,而Spring Data JPA 是 JPA 的数据访问抽象。Spring Data JPA 在没有 JPA 提供程序的情况下无法工作。
Spring Data 为DDD存储库模式或旧版通用Ao自定义实现提供了解决方案。它还可以通过方法名称约定代表您生成 JPA 查询。
使用Spring Data ,您可以使用Hibernate 、EclipseLink 或任何其他 JPA 提供程序。使用 Spring 或 Java EE 的一个非常有趣的好处是,您可以使用@Transactional注释以声明方式控制事务边界。
Spring JDBC 的量级要轻量得多,它适用于本机查询,如果您只打算单独使用 JDBC,那么您最好使用Spring JDBC 来处理 JDBC 的详细程度。
因此,Hibernate 和Spring Data是互补的,而不是竞争对手。
我们在这里使用3种不同的东西:
- JPA :Java持久性API,它提供了从java对象到数据库中关系的持久化,读取,管理数据的规范。
- Hibernate:有各种实现jpa的提供程序。冬眠就是其中之一。所以我们还有其他提供商。但是,如果将jpa与弹簧一起使用,则可以在将来切换到不同的提供商。
- Spring Data JPA :这是JPA之上的另一层,弹簧提供使您的生活轻松。
因此,让我们了解Spring Data jpa和Spring+Hibernate 的工作原理 -
Spring Data JPA:
假设您正在为您的应用程序使用Spring + Hibernate。现在你需要有 dao 接口和实现,你将使用休眠的会话工厂编写 crud 操作。假设您正在为 Employee 类编写 dao 类,明天在您的应用程序中,您可能需要为任何其他实体编写类似的 crud 操作。所以我们可以在这里看到很多样板代码。
现在,Spring Data jpa允许我们通过扩展其存储库(crudrepository,jparepository)来定义dao接口,因此它在运行时为您提供dao实现。你不再需要编写 dao 实现。这就是春季数据jpa如何让您的生活变得轻松。