Ich habe eine Klasse Person.
und ein Control Element.
dazu im src Verzeichnis eine META-INF Verzeichnis mit der persistence.xml.
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)
Code:
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.
Code:
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.
Code:
<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)