Hibernate 和 Spring Data JPA 之间的主要区别是什么?
我们什么时候不应该使用 Hibernate 或 Spring Data JPA?
另外,Spring JDBC 模板什么时候可以比 Hibernate 和 Spring Data JPA 执行得更好?
原文由 hard coder 发布,翻译遵循 CC BY-SA 4.0 许可协议
Hibernate 和 Spring Data JPA 之间的主要区别是什么?
我们什么时候不应该使用 Hibernate 或 Spring Data JPA?
另外,Spring JDBC 模板什么时候可以比 Hibernate 和 Spring Data JPA 执行得更好?
原文由 hard coder 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们在这里使用了 3 种不同的东西:
因此,让我们了解 spring data jpa 和 spring + hibernate 是如何工作的——
假设您正在为您的应用程序使用 spring + hibernate。现在你需要有 dao 接口和实现,你将使用休眠的 SessionFactory 编写 crud 操作。假设您正在为 Employee 类编写 dao 类,明天在您的应用程序中您可能需要为任何其他实体编写类似的 crud 操作。所以我们可以在这里看到很多样板代码。
现在 Spring data jpa 允许我们通过扩展其存储库(crudrepository,jparepository)来定义 dao 接口,以便它在运行时为您提供 dao 实现。您不再需要编写 dao 实现。这就是 spring data jpa 让您的生活变得轻松的方式。
原文由 Bhagwati Malav 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
Hibernate 是一个 JPA 实现,而 Spring Data JPA 是一个 JPA 数据访问抽象。如果没有 JPA 提供程序,Spring Data JPA 将无法工作。
Spring Data 为 DDD
Repository
模式 或遗留GenericDao
自定义实现提供了解决方案。它还可以通过方法名称约定代表您生成 JPA 查询。对于 Spring Data,您可以使用 Hibernate、EclipseLink 或任何其他 JPA 提供程序。使用 Spring 或 Java EE 的一个非常有趣的好处是您可以使用
@Transactional
注释以声明方式控制事务边界。Spring JDBC 更轻量级,它旨在用于本机查询,如果您只想单独使用 JDBC,那么最好使用 Spring JDBC 来处理 JDBC 的冗长问题。
因此,Hibernate 和 Spring Data 是互补而不是竞争。