Java Persistence.xml在正确的文件夹中,但我仍然得到一个错误
我正在使用Gradle从头开始配置一个新项目:Java Persistence.xml在正确的文件夹中,但我仍然得到一个错误,java,hibernate,jpa,gradle,persistence.xml,Java,Hibernate,Jpa,Gradle,Persistence.xml,我正在使用Gradle从头开始配置一个新项目: 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.Fina
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
)如下所示:
<?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>
这就是堆栈跟踪中的所有内容 我相信您正在尝试使用:
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
org.eclipse.persistence.jpa.PersistenceProvider
但是这个类不在您的类路径上
在使用Hibernate时,请尝试切换到:
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
org.hibernate.jpa.HibernatePersistenceProvider
谢谢您的回答。但是我以前试过这个。在这里进行了一些调试之后,我发现这就是问题所在:第110行:emf=provider.createEntityManagerFactory(persistenceUnitName,properties);我在这一点上得到空值…这是一个不同的问题@sm4的答案对于您报告的问题是正确的。您还可以删除javax.persistence:persistence api
和org.hibernate:hibernate entitymanager
依赖项,因为第一个依赖项附带org.hibernate:core
,第二个依赖项是5.2之后的一个虚拟包,只需要core即可。@coladict非常感谢!!!你和sm4救了我一命!我的问题现在解决了@如果你的问题解决了,你介意发布你的答案或编辑我的答案吗?“持久性api”1.0.2是JPA1。您的JPA提供商没有实现这一点,它实现了JPA2.1!
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>