Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法解析org.apache.openjpa.persistence.PersistenceProviderImpl_Java_Jpa - Fatal编程技术网

Java 无法解析org.apache.openjpa.persistence.PersistenceProviderImpl

Java 无法解析org.apache.openjpa.persistence.PersistenceProviderImpl,java,jpa,Java,Jpa,我不断听到一个错误,说: cannot resolve org.apache.openjpa.persistence.PersistenceProviderImpl 我的jar文件在那里,但我很难找出为什么仍然出现错误: org.apache.openjpa.persistence.PersistenceProviderImpl 我已经在谷歌搜索过了,但答案并不在那里。我反复检查以确保依赖项不存在两次,以防发生冲突。因此,当我尝试声明@Entity时,它不会拾取数据库表。我必须添加以下

我不断听到一个错误,说:

cannot resolve org.apache.openjpa.persistence.PersistenceProviderImpl

我的jar文件在那里,但我很难找出为什么仍然出现错误:


org.apache.openjpa.persistence.PersistenceProviderImpl

我已经在谷歌搜索过了,但答案并不在那里。我反复检查以确保依赖项不存在两次,以防发生冲突。因此,当我尝试声明@Entity时,它不会拾取数据库表。

我必须添加以下jar:

org.apache.openjpa:com.springsource.org.apache.openjpa.persistence:1.02


我非常信任我的IDE,它会下载我需要的所有jar。

您必须导入JPA实现jar(本例中为OpenJPA)。你可以从或那里得到一个


更新:如中所述,最好删除其他JPA提供程序库(Hibernate)。

根据lib目录的图像,我想告诉您,
持久化单元的XML定义不符合预期

您的库中有Hibernate jar,所以看起来是这样的 “持久性提供者”应该是“Hibernate”,而不是“ApacheOpenJPA”

如果您真的想使用ApacheOpenJPA,那么我建议您删除lib中的HibernateJAR文件


Hibernate在两者中更受欢迎,所以我推荐它。

您有专门与OpenJPA相关的jar吗?上面突出显示的Jar只是一个API;javax.persistence.jar中没有实现是的,也许有一天IDE会足够聪明,知道这个类作为persistence.xml中的提供者意味着它应该下载OpenJPA jar,但我们还没有做到。更不用说IDE无法知道下载哪个版本了。现在,如果您使用Maven或Gradle(或类似的东西),那么构建过程将足够智能,可以做到这一点。。。
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

    <persistence-unit name="dataBase">

        <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
        <properties>
            <property name="openjpa.ConnectionURL" value="com.mysql.jdbc.Driver"/>
            <property name="openjpa.ConnectionDriverName" value="jdbc:mysql://localhost:8080/springpractice"/>
            <property name="openjpa.ConnectionUserName" value="root"/>
            <!--<property name="openjpa.ConnectionPassword" value=""/>-->
            <property name="openjpa.Log" value="DefaultLevel=TRACE, Tool=INFO"/>
        </properties>

    </persistence-unit>
</persistence>