我是 JPA 的新手。
据我了解,JPA 是规范,Hibernate 实现了 JPA 并提供附加功能以及 JPA 方法。
但是我正在阅读 JPA 教程,其中使用EntityManager
对象我们可以对数据执行 CRUD,而无需使用 Hibernate 库!
所以谁能告诉我
- 我可以使用
EntityManager
方法单独使用 JPA,而不使用 Hibernate 吗?
请提及一些有用的链接或示例。
非常感谢回复。
谢谢。
你是对的 JPA 是一个规范。Hibernate 和 EclipseLink 是它的几个实现。
您必须指定持久性提供程序(Hibernate、EclipseLink)才能使用 JPA 实现。持久性提供程序具有 JPA 规范的实现类。
你不能只使用 JPA,因为它是一个 API =),但是有很多 JPA 实现:
如果您不想使用 Hibernate(或任何其他 JPA 提供程序),那么您必须通过提供 javax.persistence.spi.PersistenceProvider 接口的实现来实现您自己的提供程序。问题是,你为什么需要重新发明轮子?如果您不喜欢 Hibernate,您可以使用众多其他 JPA-Provider 中的一种来选择
虽然这个线程很老,但我觉得值得分解。
JPA:这只是一个规范。用更简单的话来说。接口集。
Hibernate、Eclipse Link、Apache OpenJPA: JPA 的众多实现中的一小部分。除了为 JPA 规范提供基本实现之外,Hibernate 和其他实现还提供了它们的附加功能。您可以根据自己的需要选择
春季数据:
马文:
mvn dependency:tree
摇篮:
gradle dependencies
仅当应用程序服务器已经具有 JPA 实现时,才可以在没有 JPA 提供程序(即 Hibernate、EclipseLink 等)的情况下使用 JPA。您很可能在教程中看到过在此类应用程序服务器上执行的演示。
您可以在不使用 Hibernate 的情况下单独使用 JPA,并且之前应该了解 Hibernate 与 JPA 之间的要点,如下所示。
休眠
JPA
你不能单独使用 JPA。JPA 是一种规范,它为对象关系映射和管理持久对象定义了一个 API,您需要一个 JPA 提供者来实现它,例如 Hibernate、EclipseLink。
不,您不能单独使用 JPA 执行 CRUD 操作。由于 JPA 只是一个规范,因此您需要实现来执行数据库操作。实现由 Hibernate、EclipseLink、Ibatis 等提供。