EntityManager ist null. Warum?

Status
Nicht offen für weitere Antworten.

Fats

Bekanntes Mitglied
Hallo!

Folgendes Problem: Ich hab mir von Netbeans ein paar Klassen aus meiner vorhandenen MySQL Datenbank generieren lassen. Soweit so schick! Unter anderem gibt es dort zu jeder DatenKlasse eine Controller Klasse. Zum Beispiel Student und StudentController.

Wenn ich diesen Controller jetzt in einer anderen Klasse einbinden möchte:

Code:
public class Manager {

    private StudentController stctrl = new StudentController();

    ...

}

Dann gibt es eine NullPointer Exception, wenn ich etwa folgendes mache:
Code:
  List list = stctrl.getStudents();

Hier bei fliegt mir alles um die Ohren!

Wenn ich mir die SRC ansehe, dann komm eich auf folgendes:

Code:
    public List<Student> getStudents() {
        if (students == null) {
            students = getStudents(false);
        }
        return students;
    }

von hier geht es weiter zu


Code:
    public List<Student> getStudents(boolean all) {
        EntityManager em = getEntityManager();
        try {
            Query q = em.createQuery("select object(o) from Students as o");
            if (!all) {
                q.setMaxResults(batchSize);
                q.setFirstResult(getFirstItem());
            }
            return q.getResultList();
        } finally {
            em.close();
        }
    }

und dann zu
Code:
    public EntityManager getEntityManager() {
        return emf.createEntityManager();
    }

und genau hier kommt die NullPointer Exception! emf ist null! Warum? Wie kann man es setzen??

Ich hab die ganze Klasse durchsucht, aber es gibt nur 2 Stellen, an denen das emf auftritt! Die erste ist genau diese jene Zeile und die zweite Stelle befindet sich zwei Zeilen höher:

Code:
    @PersistenceUnit(unitName = "STUDENTS-PU")
    private EntityManagerFactory emf = null;


Aber nirgends steht, wo und wie es gesetzt wird!

Was passiert hier? Hat da jemand einen Tipp für mich? Das wäre nett!

Viel Grüße
Fats
 

happy_robot

Bekanntes Mitglied
die antwort ist eigentlich recht einfach, wundere mich aber daß niemand antwortet:



grundsätzlich stellt sich die frage der umgebung:


wenn du

Code:
@PersistenceUnit(unitName = "STUDENTS-PU")

angibst, erwartest du daß jemand dir den entitymanager zuweist. das geschieht nur in einer umgebung die dieses auch "kann", z.b. dem JBoss. die persistence-unit muss hier auch im application-server konfiguriert sein (als Data-Source).

in einem servlet-container (tomcat oder ähnliche) musst du du den entity-manager selber instanziieren (EntityManagerFactory).

Hab jetzt gerade keine Zeit das alles zu posten, google einfach mal danach. Ansonsten schau ich morgen noch mal rein.
 

Fats

Bekanntes Mitglied
Aaaah :) Der Tipp war gut!

Sieht dann in etwa so aus:
Code:
emf = javax.persistence.Persistence.createEntityManagerFactory("STUDENTS-PU");
stctrl.setEntityManagerFactory(emf);
Und dann gehts. Den Controler muß man dann natürlich um die set Methode für den EMF ergänzen.

Vielen Dank
Fats
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K No Persistence provider for EntityManager named X Allgemeines EE 14
F JPA Inject EntityManager im JSF-ManagedBean Allgemeines EE 1
FINF_AW_Alex statische Methode und der EntityManager Allgemeines EE 13
F applikationsverwalteter EntityManager in contextInitialized Allgemeines EE 2
D Kein EntityManager in Eclipse (!) Allgemeines EE 2
W DAOs, EntityManager. Allgemeines EE 7
C EntityManager wirft NullpointerException: JBoss-Hibernate Allgemeines EE 4
L JPA Verhindern von: attempted to assign id from null one-to-one property Allgemeines EE 5
OnDemand REST Json Response Mapping ist null Allgemeines EE 2
T Servlet Request.getAttribut returns null from JSP Select-Box Allgemeines EE 4
FINF_AW_Alex EM ist (null) Allgemeines EE 14
V "null" durch NICHTS ersetzen jsp und java beans Allgemeines EE 3
P InitialContext lookup gibt NULL zurück Allgemeines EE 2
R Ist es möglich die Request paramter auf "null" zu Allgemeines EE 3
M h:outputText und null-value (JSF) Allgemeines EE 2
S JDBC Mysql Connection Problem - datasource null Allgemeines EE 3
D Variable = null Allgemeines EE 5
H null bei HttpServletRequest-Funktionen, wieso? Allgemeines EE 2
M STRUTS/Cannot retrieve definition for form bean null on acti Allgemeines EE 4
S request.getParameter() holt NULL Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben