2014-03-02 49 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> 
相关问题