我是JPA的新手。
根据我的理解,JPA是规范,Hibernate实现JPA并提供添加功能以及JPA方法。
但我正在阅读JPA教程,使用EntityManager
对象我们可以对数据执行CRUD,而不使用Hibernate库!
所以任何人都可以让我知道
EntityManager
方法单独使用JPA,而不是使用Hibernate吗?请提及一些有用的链接或示例。
非常感谢回应 感谢。
答案 0 :(得分:16)
你是对的JPA是规范。 Hibernate,EclipseLink是它的几个实现。
您必须指定持久性提供程序(Hibernate,EclipseLink)才能使用JPA实现。持久性提供程序具有JPA规范的实现类。
答案 1 :(得分:4)
你不能只使用JPA,因为它是一个API =),但有很多JPA实现:
答案 2 :(得分:2)
尽管此线程很旧,但我认为值得将其分解。
JPA:这只是一个规范。用简单的话来说。接口集。
Hibernate,Eclipse链接:JPA的许多实现中的两个。除了提供JPA规范的基本实现之外,Hibernate和Eclipse Link还提供了其附加功能。您可以根据需要选择
春季数据:
行家:
mvn dependency:tree
等级:
gradle dependencies
答案 3 :(得分:1)
如果您不想使用Hibernate(或任何其他JPA提供程序),那么您必须通过为javax.persistence.spi.PersistenceProvider接口提供实现来实现您自己的提供程序。 问题是,为什么你需要重新发明轮子? 如果您不喜欢Hibernate,可以使用众多其他JPA-Providers之一进行选择
答案 4 :(得分:1)
你可以单独使用JPA而不使用Hibernate,而且应该知道Hibernate与JPA之间的主要观点,如下所示。
休眠
JPA
答案 5 :(得分:1)
只有在应用程序服务器已经有JPA实现的情况下,JPA才能在没有JPA提供程序(Hibernate,EclipseLink等)的情况下使用。很可能在教程中你看过在这样的应用服务器上进行的演示。
答案 6 :(得分:0)
您不能单独使用JPA。 JPA是一个规范,它定义了一个用于对象关系映射和管理持久对象的API,您需要一个JPA提供程序来实现它,例如Hibernate,EclipseLink。
答案 7 :(得分:0)
否,您不能仅通过JPA执行CRUD操作。由于JPA只是一个规范,因此您需要实现来执行数据库操作。这些实现由Hibernate,EclipseLink,Ibatis等提供。