我有一个使用 Maven 的 Spring MVC 项目。 我使用 Spring-data-jpa 作为我的依赖项之一:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.10.5.RELEASE</version>
</dependency>
Spring-data-jpa提供了api。 因此,我需要添加另一个实现 jpa 的依赖项。但是,我很困惑:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.6.4</version>
</dependency>
和
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.2.Final</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.4</version>
</dependency>
什么是 eclipse.persistence?和hibernate有什么区别? 请帮忙!
最佳答案
Eclipse Persistence (EclipseLink) 和 Hibernate 都是 Java Persistence API 的实现,每个都有自己的额外功能,并且通常都有自己的错误。与其他实现相比,它们在速度方面非常相似。
每个持久化单元仅使用其中之一,在 META-INF/persistence.xml
中定义。看看你的,在 persistence-unit
->provider
节点内,你会找到所使用的类。
如果它以 org.hibernate
开头,那么您可以安全地删除 eclipse 依赖项。
如果它以 org.eclipse
开头,您可以删除 hibernate 依赖项。
如果您有多个持久性单元,每个持久性单元都可以使用不同的实现/提供程序。
关于java - 我对 Maven 依赖项 : "org.eclipse.persistence.jpa" and "org.hibernate" 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43537710/