java - 我对 Maven 依赖项 : "org.eclipse.persistence.jpa" and "org.hibernate" 感到困惑

标签 java spring hibernate maven jpa

我有一个使用 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/

相关文章:

java - CANNOT_FIND_FACELET_TAGLIB 对于 xmlns :jsf ="http://xmlns.jcp.org/jsf"

java - 在 Java 中将字符串加倍

java - getSupportFragmentManager().getFragments() 显示编译时错误

java - Spring 组件在未 Autowiring /注入(inject)时是否会实例化?

java - Hibernate Criteria/Oracle - Join - 仅当所有关联数据匹配条件时才返回

java - 如何在静态类中初始化最终静态变量?

spring - 如何使用 RestTemplate 进行基本身份验证

java - MongoTemplate 聚合 - 按日期分组

java - 约束验证顺序 - Jersey

java.sql.SQLException : Listener refused the connection with the following error: ORA-12505