2016-11-20 87 views
0

执行Java SE JPA独立的应用程序引发异常:JPA与Java SE:javax.persistence.PersistenceException:没有持久性提供的EntityManager

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> 

个以下罐子构建路径上:

  • org.eclipse.persistence.jpa-2.6.4.jar
  • 的EclipseLink-2.6.4.jar
  • javax.persistence-2.1.1。罐子
  • PostgreSQL相关9.4.1212.jar

回答

0

你必须给的EclipseLink JAR添加到类路径,以检查是不是已经存在或没有:

System.out.println(System.getProperty("java.class.path")); 
+0

是的,的EclipseLink-2.6.4.jar是类路径 – JCvanDamme

0

我必须提供持久的命名空间中的persistence.xml与xmlns属性

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">