执行 Java SE JPA 独立应用程序会引发异常:
javax.persistence.PersistenceException: No Persistence provider for EntityManager named test
我发现了几个类似的帖子,但我认为它们都不适用于我的 EclipseLink、Java SE 案例,并且没有打包到可部署文件中,因此没有 WEB-INF 等。
/src/META-INF/persistence.xml 是:
<persistence>
<persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>SomeEntity</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/somedbname"/>
<property name="javax.persistence.jdbc.user" value="foo"/>
<property name="javax.persistence.jdbc.password" value="bar"/>
</properties>
</persistence-unit>
</persistence>
以下 jar 位于构建路径中:
- org.eclipse.persistence.jpa-2.6.4.jar
- eclipselink-2.6.4.jar
- javax.persistence-2.1.1.jar
- postgresql-9.4.1212.jar
最佳答案
我必须在 persistence.xml 中使用 xmlns 属性提供持久性命名空间
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
关于java - 使用 Java SE 的 JPA : javax. persistence.PersistenceException:没有 EntityManager 的持久性提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40709995/