Hallo zusammen, ich habe ein kleines Problem.
Ich bekomme in meiner Funktion "persist()" direkt in der ersten Funktionszeile ("em.getTransaction().begin();") die Meldung:
Die Funktion "persist()" wird in der Funktion "beispieldaten()" aufgerufen. Dort gibt es außerdem die Ausgabe:
Die mir folgende Ausgabe liefert:
Sprich: das Objekt "em" ist gültig und NICHT null.
Wenn ich aber in der Funktion "beispieldaten()" die Funktion "persist()" aufrufe, die wiederum mit dem EntityManager-Objekt "em" arbeitet, so bekomme ich an der Stelle "em.getTransaction().begin();" eine "NullPointerException".
Warum? "em" ist doch - wie die Ausgabe auch bestätigt - NICHT null.
ich hoffe ihr könnt mir weiterhelfen?!
LG
jimmy
Ich bekomme in meiner Funktion "persist()" direkt in der ersten Funktionszeile ("em.getTransaction().begin();") die Meldung:
Exception in thread "main" java.lang.NullPointerException
Die Funktion "persist()" wird in der Funktion "beispieldaten()" aufgerufen. Dort gibt es außerdem die Ausgabe:
Java:
System.out.println(" EntityManager: " + em);
Die mir folgende Ausgabe liefert:
EntityManager: org.eclipse.persistence.internal.jpa.EntityManagerImpl@bb0d0d
Sprich: das Objekt "em" ist gültig und NICHT null.
Wenn ich aber in der Funktion "beispieldaten()" die Funktion "persist()" aufrufe, die wiederum mit dem EntityManager-Objekt "em" arbeitet, so bekomme ich an der Stelle "em.getTransaction().begin();" eine "NullPointerException".
Warum? "em" ist doch - wie die Ausgabe auch bestätigt - NICHT null.
ich hoffe ihr könnt mir weiterhelfen?!
Java:
import java.util.Scanner;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.PersistenceException;
public class var1 {
private EntityManagerFactory emf = Persistence.createEntityManagerFactory("KBS_prak6PU");
private EntityManager em = emf.createEntityManager();
public void beispieldaten() {
System.out.println("\n####################################################");
System.out.println(" Lege Mitarbeiterdaten in der Datenbank an!");
System.out.println(" EntityManager: " + em);
System.out.println(" Optionen: nullable=true, updatable=false, unique=false");
System.out.println(" Lege NULL Wert an:");
System.out.println("####################################################\n");
String namen[] = {"Egon", "Erwin", "Ute", "Aische", ""};
try {
for (int i = 0; i < namen.length; i++) {
persist(new Mitarbeiter1((i + 1), namen[i]));
}
} catch (PersistenceException e) {
}
}
public void persist(Object object) {
em.getTransaction().begin();
try {
em.persist(object);
em.getTransaction().commit();
} catch (Exception e) {
if (em.getTransaction().isActive()) {
em.getTransaction().rollback();
}
System.out.println(e);
} finally {
em.close();
}
}
public void schliessen() {
if (em != null && em.isOpen()) {
em.close();
}
if (emf != null && emf.isOpen()) {
emf.close();
}
}
public var1() {
// Beispieldaten für Mitarbeiter1 anlegen
beispieldaten();
// EntityManager für Mitarbeiter1 schließen
schliessen();
}
}
LG
jimmy