我知道这个问题已被问过一千次,但我找不到适用于我的解决方案,所以我再次提出这个问题。 我试图用一个类和hibernate创建一个简单的项目。但是当我尝试访问我的网页时,我遇到了这个错误:
javax.persistence.PersistenceException: No Persistence provider for EntityManager named testhibernate0
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
servlet.Main.start(Main.java:21)
servlet.Servlet.doGet(Servlet.java:14)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
这是我的班级Personne.java:
package bean;
import java.util.ArrayList;
import javax.persistence.*;
@Entity
@Table( name = "personne")
public class Personne {
@Id
@GeneratedValue
private int id ;
private String nom ;
@ManyToOne
@JoinColumn(name="Maison")
private ArrayList<Maison> listMaison;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public ArrayList<Maison> getListMaison() {
return listMaison;
}
public void setListMaison(ArrayList<Maison> listMaison) {
this.listMaison = listMaison;
}
public void addMaison(Maison maison) {
listMaison.add(maison);
}
}
这是我的文件persistence.xml(我在google上发现我应该有一个属性并摆脱那个愚蠢的错误,但它没有用)
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="testhibernate0" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>Personne</class>
<properties>
[...]
</properties>
</persistence-unit>
</persistence>
这是我的罐子的截图:clic here
如果有人可以帮助我......
THX
答案 0 :(得分:0)
我想给你2条建议。
首先,确保persistence.xml文件位于以下目录中:
/WEB-INF/classes/META-INF
其次,更改提供商<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
而不是<provider>org.hibernate.ejb.HibernatePersistence</provider>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.2.6.Final</version>
</dependency>
在pom.xml
与之前的提供商<provider>org.hibernate.ejb.HibernatePersistence</provider>