没有名为持久性的EntityManager的持久性提供程序

2022-07-04 00:00:00 persistence jakarta-ee java jpa

您好,我需要帮助来解决这个问题。当尝试在IntelliJ上运行我的Java Web应用程序时,我收到以下消息:

异常:没有持久化提供程序 名为持久性的实体管理器

-- src
|-- main
|   |-- java
|   |   `-- service
|   |     `-- dao
|   |         `-- mapping
|   |             |-- 
|   |             |-- 
|   |             `--
|   `-- resources
|       `-- META-INF
|           `-- persistence.xml

这是resources/META-INF/中的persistence.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0">
<persistence-unit name="persistence">
       <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <mapping-file>Dao/mapping/user.xml</mapping-file>
    <class>Dao.mapping.UserEntity</class>
    <properties>
        <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/test"/>
    <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
    <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test"/>
    <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
    <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/test"/>
    <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
    <property name="eclipselink.jdbc.url" value="jdbc:mysql://localhost:3306/test"/>
    <property name="eclipselink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
</properties>
</persistence-unit>

我的Gradle版本

group 'com.test'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'war'

sourceCompatibility = 1.5

repositories {
mavenCentral()
}

dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile group: 'org.hibernate', name: 'hibernate-core', version:          '5.2.4.Final'
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
compile group: 'org.apache.tomcat', name: 'tomcat-catalina', version: '9.0.0.M13'

compile group: 'org.hibernate', name: 'hibernate-validator', version: '5.3.3.Final'
compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.1-api', version: '1.0.0.Final-redhat-1'

}

谢谢。


解决方案

一个选项是错误是由引用的实体不存在引起的。

您在sistence.xml中有"Dao.mapping.UserEntity",但目录建议它应该是"service.dao.mapping.UserEntity"。

完整的堆栈跟踪可以帮助解决问题。

相关文章