首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Persistence.xml在正确的文件夹中,但我仍然收到一个错误

Persistence.xml在正确的文件夹中,但我仍然收到一个错误
EN

Stack Overflow用户
提问于 2017-03-14 09:21:01
回答 1查看 484关注 0票数 1

我正在使用Gradle从头开始配置一个新项目:

代码语言:javascript
代码运行次数:0
运行
复制
apply plugin: 'java-library'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.hsqldb:hsqldb:2.3.4'
    compile 'javax.persistence:persistence-api:1.0.2'
    compile 'org.hibernate:hibernate-core:5.2.8.Final'
    compile 'org.hibernate:hibernate-entitymanager:5.2.8.Final'

    api 'org.apache.commons:commons-math3:3.6.1'

    implementation 'com.google.guava:guava:20.0'

    testImplementation 'junit:junit:4.12'
}

我的persistence.xml (位于src/main/resources/META-INF)如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
             http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">

    <persistence-unit name="app" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>com.fsa.hibernate.model.User</class>


        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:testdb" />
            <property name="javax.persistence.jdbc.user" value="sa" />
            <property name="javax.persistence.jdbc.password" value="" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
        </properties>
    </persistence-unit>

</persistence>

我有一个很难解决的问题:

代码语言:javascript
代码运行次数:0
运行
复制
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named app:  The following providers:
org.hibernate.jpa.HibernatePersistenceProvider
Returned null to createEntityManagerFactory.

    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
    at com.fsa.hibernate.model.UserTest.main(UserTest.java:15)

这就是堆栈跟踪中的所有内容。

EN

回答 1

Stack Overflow用户

发布于 2017-03-14 10:24:10

我相信你是在尝试使用:

代码语言:javascript
代码运行次数:0
运行
复制
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

但是这个类不在您的类路径中。

当您使用Hibernate时,请尝试切换到:

代码语言:javascript
代码运行次数:0
运行
复制
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42776238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档