Hibernate 和 Spring-JPA 的区别是什么
Hibernate 和 Spring 数据 JPA 的主要区别是什么?什么时候不应该使用 Hibernate 或 Spring 数据 JPA?另外,may Spring JDBC 模板何时能比 Hibernate/Spring Data JPA 表现得更好?
Hibernate 是 JPA 实现,而 springdatajpa 是 JPA 数据访问抽象。Spring 数据为 GenericDao 自定义实现提供了一个解决方案。它还可以通过方法名约定代表您生成 JPA 查询。
对于 Spring 数据,您可以使用 Hibernate、Eclipse Link 或任何其他 JPA 提供者。一个非常有趣的好处是,您可以使用 @Transactional 注释声明性地控制事务边界。
Spring JDBC 更轻量级,它是用于本机查询的,如果您只打算单独使用 JDBC,那么最好使用 springjdbc 来处理 JDBC 的详细信息。
因此,Hibernate 和 Spring 数据是互补的,而不是竞争对手。
我们在这里使用了三种不同的方法:
JPA:Java persistence api,它提供了从 Java 对象到数据库中的关系的持久化、读取和管理数据的规范。
Hibernate:有很多实现 jpa 的提供者。冬眠就是其中之一。所以我们还有其他供应商。但如果将 jpa 与 spring 结合使用,则可以在将来切换到不同的提供者。
Spring Data JPA:这是 Spring 提供的 JPA 之上的另一层,它可以让您的生活变得轻松。
所以让我们了解一下 spring 数据 jpa 和 spring+hibernate 是如何工作的:
假设您的应用程序使用的是 spring+hibernate。现在您需要有 dao 接口和实现,在这里您将使用 hibernate 的 SessionFactory 编写 crud 操作。假设您正在为 Employee 类编写 dao 类,明天在您的应用程序中,您可能需要为任何其他实体编写类似的 crud 操作。所以我们可以在这里看到很多样板代码。
现在 Spring data jpa 允许我们通过扩展其存储库(crudrepository,jparepository)来定义 dao 接口,以便在运行时为您提供 dao 实现。您不再需要编写 dao 实现了,这就是 SpringDataJPA 让您的生活变得简单的原因。
本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:jaagool@sina.cn 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。