簡體   English   中英

具有Java SE的JPA:javax.persistence.PersistenceException:EntityManager沒有持久性提供程序

[英]JPA with Java SE: javax.persistence.PersistenceException: No Persistence provider for EntityManager

執行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

您必須將eclipselink jar添加到您的ClassPath中,以檢查它是否已經存在:

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

我必須在xmlns屬性的persistence.xml中提供持久性名稱空間

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM