簡體   English   中英

沒有名為***的EntityManager的持久性提供程序

[英]no Persistence provider for EntityManager named ***

我知道在SO上已經對此提出了很多要求,但是他們沒有為我的問題提供解決方案:

我正在使用帶有JPA的項目,該項目是從具有完全相同的設置(相同的操作系統,相同的IDE,相同的數據庫名稱,也位於MAMP中)的其他人克隆的

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named persistentie
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at DatabaseTest.main(DatabaseTest.java:29)

我的persistence.xml(在文件夾/ META-INF /和/ WEB-INF / classes / META-INF /中,如關於SO的其他多個問題所建議):

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="persistentie" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>Domein.Student</class>
    <class>Domein.Onderzoeksdomein</class>
    <class>Domein.Promotor</class>
    <class>Domein.Gebruiker</class>
    <class>Domein.Campus</class>
    <class>Domein.Presentatie</class>
    <class>Domein.Dag</class>
    <class>Domein.Lokaal</class>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/Project2-DB?zeroDateTimeBehavior=convertToNull"/>
      <property name="javax.persistence.jdbc.password" value="root"/>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="javax.persistence.jdbc.user" value="root"/>
      <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
    </properties>
  </persistence-unit>
</persistence>

這行是獲取異常的地方:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistentie");

在此之前沒有任何代碼,這是主要代碼的第一行。

我正在使用MAMP,具有Persistence (JPA 2.1) NetBeans 7.4 Persistence (JPA 2.1)和OSX。

我在這里完全迷路了...因為我沒有更改朋友代碼中的任何內容,所以應該正常嗎?

另外,我檢查了javax.persistence.Persistence.createEntityManagerFactory(String name)的源,並且發現resolver.getPersistenceProviders()返回一個空的List。 我沒有JPA的經驗,但是不知道這意味着什么。

您的類路徑中沒有EM jar。 只需添加:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>${hibernate.version}</version>
</dependency>

對於EclipseLink,添加此依賴項:

<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>javax.persistence</artifactId>
  <version>2.1.1</version>
  <scope>provided</scope>
</dependency>

暫無
暫無

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

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