# Was fehlt? - No Persistence provider for EntityManager



## Kris (1. Jun 2008)

Ich habe eine Klasse Person.


```
package objekte;

import java.util.Calendar;
import javax.persistence.Entity;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity(name="Person")
public class Person {

	private Integer id;
	private String vorname;
	private String nachname;
	private Calendar geburtsdatum;
	
	public Person(){
		
	}
	
	public Person(Integer id, String vorname, String nachname, Calendar geburtsdatum){
		this.id = id;
		this.vorname = vorname;
		this.nachname = nachname;
		this.geburtsdatum = geburtsdatum;
	}
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@SuppressWarnings("unused")
	private long getId(){
		return this.id;
	}
	
	@SuppressWarnings("unused")
	private void setId(Integer id){
		this.id = id;
	}
	
	@Column(name="vorname")
	public String getVorname(){
		return this.vorname;
	}
	
	public void setVorname(String vorname){
		this.vorname = vorname;
	}
	
	@Column(name="nachname")
	public String getNachname(){
		return this.nachname;
	}
	
	public void setNachname(String nachname){
		this.nachname = nachname;
	}
	
	@Temporal(TemporalType.DATE)
	@Column(name="geburtsdatum")
	public Calendar getGeburtsdatum(){
		return this.geburtsdatum;
	}
	
	public void setGeburtsdatum(Calendar geburtsdatum){
		this.geburtsdatum = geburtsdatum;
	}
}
```

und ein Control Element.


```
package objekte;


import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

public class Control {

	public static void main(String[] args) {
		
		Person ich = new Person();
		ich.setVorname("Christof");
		ich.setNachname("Kulesza");
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("test");
		EntityManager em = emf.createEntityManager();
		
		EntityTransaction tx = em.getTransaction();
		em.persist(ich);
		tx.commit();
	}

}
```

dazu im src Verzeichnis eine META-INF Verzeichnis mit der persistence.xml.


```
<persistence 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_1_0.xsd" version="1.0">
  <persistence-unit name="test" transaction-type="JTA">
    <class>Person</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/hibernate" />
      <property name="hibernate.connection.username" value="root" />
      <property name="hibernate.connection.password" value="router" />
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />
    </properties>
  </persistence-unit>
</persistence>
```


Wenn ich das Control ausführe, dann kommt die Fehlermeldung:
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named wasserwacht
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
	at objekte.Control.main(Control.java:18)


----------



## Kris (1. Jun 2008)

Die Fehlermeldung ist

Wenn ich das Control ausführe, dann kommt die Fehlermeldung: 
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named wasserwacht 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33) 
at objekte.Control.main(Control.java:18)


----------



## Moddus (11. Jul 2008)

Hakko Kris,
hast du zu deinem Problem schon eine Lösung gefunden ?
Ich habe im Moment das gleich Problem und komme nicht weiter.

Grüße


----------



## Alu (12. Jul 2008)

Füg mal die hibernate jars in deinen Classpath ein.
Ich hatte das gleiche Problem eben mit Toplink bei einer Desktopapplikation. Siehe dazu auch http://java.sun.com/developer/technicalArticles/J2SE/Desktop/persistenceapi/



			
				Moddus hat gesagt.:
			
		

> Hakko Kris,
> hast du zu deinem Problem schon eine Lösung gefunden ?
> Ich habe im Moment das gleich Problem und komme nicht weiter.
> 
> Grüße


----------



## semi (12. Jul 2008)

Die Fehlermeldung ist eindeutig genug. Nenne einfach die Persistence-Provider-Klasse in persistence.xml
	
	
	
	





```
<persistence-unit name="test" transaction-type="JTA">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
...
```


----------

