2014-03-02 47 views
1

我知道這已經被問了很多關於SO,但他們沒有提供給我的解決問題的辦法:爲EntityManager的不持久性提供者名爲***

我使用的是JPA的一個項目,從別人克隆與其他完全相同的設置(相同的操作系統,相同的IDE,相同的數據庫名稱,也爲毫安)

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 /班/ 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上,NetBeans 7.4 Persistence (JPA 2.1)和OS X.

我在這裏完全......至於我沒有改變我的朋友的代碼東西丟了,這應該工作的權利?

我也檢查了javax.persistence.Persistence.createEntityManagerFactory(字符串名稱)的來源,我發現resolver.getPersistenceProviders()返回一個空列表。我沒有JPA的經驗知道這意味着什麼。

+1

你有這一切需要的jar文件?看起來你的類路徑中沒有EM; – solvator

+1

你可以添加這個答案嗎?這工作。也許給未來的訪客更多的信息? – vrwim

+0

[未命名的EntityManager的持久性提供程序]的可能重複(http://stackoverflow.com/questions/1158159/no-persistence-provider-for-entitymanager-named) – Anwar

回答

3

您的類路徑中沒有EM jar。簡單地補充一點:

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

對於的EclipseLink添加這種依賴性:

<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.1.1</version> 
    <scope>provided</scope> 
</dependency> 
相關問題