没有名为持久性的EntityManager的持久性提供程序
您好,我需要帮助来解决这个问题。当尝试在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"。
完整的堆栈跟踪可以帮助解决问题。
相关文章