2010-12-30 3 views
2

Ich habe eine Methode, die den Entity Manager für bestimmte DB.Now zurück, wenn ich die Methode zum ersten Mal verwenden, um Entity Manager alles funktioniert funktioniert. Ich kann Daten in beliebige Tabellen speichern A , B, C using entity manager.Now sagen, ich bekomme eine Ausnahme beim Speichern in Tabelle BInvalidStateException beim Versuch, Daten in DB einzugeben

Jetzt, wenn ich versuchen, irgendeine Operation auf DB nach der oben genannten Ausnahme durchzuführen, das nächste Mal, wenn ich versuche, denselben Code auszuführen, schlägt es fehl, wenn Aktualisierung in Tabelle A kann itself.I sehen folloing eception

        <openjpa-1.2.2-SNAPSHOT-r422266:778978M-OPENJPA-975 nonfatal user error> org.apache.openjpa.persistence.InvalidStateException: The factory has been closed. The stack trace at which the factory was closed is available if Runtime=TRACE logging is enabled. 
    at org.apache.openjpa.kernel.AbstractBrokerFactory.assertOpen(AbstractBrokerFactory.java:673) 
    at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:182) 
    at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) 
    at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192) 
    at .. 

Antwort

0

Irgendwo in Ihrem Code Sie (oder ein Rahmen) schließen Sie Ihren EntityManagerFactory. Stellen Sie sicher, dass Sie close() nicht darauf angerufen haben.

+0

Kann der Entity Manager Factory automatisch vom Container geschlossen werden? Muss ich einige Einstellungen in web.xml oder persistene.xml vornehmen? – akshay

+1

@akshay Der Lebenszyklus des Entitätsmanagers und der zugehörige Persistenzkontext wird automatisch vom Container verwaltet. Sie müssen nichts öffnen oder schließen. –

Verwandte Themen