我们可以在没有休眠的情况下使用jpa吗

新手上路,请多包涵

我是 JPA 的新手。

据我了解,JPA 是规范,Hibernate 实现 JPA 并提供附加功能以及 JPA 方法。

但我正在阅读 JPA 教程,其中使用 EntityManager 对象我们可以对数据执行 CRUD,而无需使用 Hibernate 库!

所以任何人都可以让我知道

  1. 我可以使用 EntityManager 方法单独使用 JPA,而不使用 Hibernate 吗?

请提及一些有用的链接或示例。

非常感谢回应。

谢谢。

原文由 Ali 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 376
2 个回答

你是对的 JPA 是一个规范。 Hibernate 和 EclipseLink 是它的两个实现。

您必须指定持久性提供程序(Hibernate、EclipseLink)才能使用 JPA 实现。持久性提供程序具有 JPA 规范的实现类。

原文由 bornleo 发布,翻译遵循 CC BY-SA 4.0 许可协议

虽然这个线程很旧,但我觉得值得分解一下。

JPA: 这只是一个规范。用更简单的话来说。接口集。

Hibernate、Eclipse Link、Apache OpenJPA: JPA 的许多实现中的一些。除了为 JPA 规范提供基本实现之外,Hibernate 和其他实现还提供了它们的附加功能。您可以根据自己的需要进行选择

弹簧数据:

  • 它提供了额外的抽象。
  • 当您使用 Hibernate/Eclipse Link 时,您仍然需要编写一些样板代码。通过使用 Spring JPA,您可以避免这种情况。
  • 需要注意的最重要的一点是,由于 Springboot 的固执己见,Spring 数据默认使用 Hibernate。如果愿意,您可以更改默认行为。
  • 当您在使用 Spring JPA(默认配置)的 Springboot 项目中运行以下命令时,您将看到正在使用 Hibernate jar。

Maven: mvn dependency:tree

摇篮: gradle dependencies

原文由 Andy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题