Ich lerne GAE und bin ein bisschen fest. Wenn ich die folgende, mit einem schließlich verwenden, um sicherzustellen, dass die Persistenz-Manager geschlossen ist, erhalte ich eine Ausnahme, wenn sie versuchen, um tatsächlich die Note Objekte zu lesen:Wie machen Sie Abfrageergebnisse verfügbar nach dem Schließen der Persistenz-Manager
public class Notes {
public List<Note> getAll() {
PersistenceManager pm = PMF.instance().getPersistenceManager();
try {
Query query = pm.newQuery("select from com.uptecs.google1.model.Note order by subject");
return (List<Note>) query.execute();
} finally {
pm.close();
}
}
}
Die Ausnahme, die ich bekommen, ist dies:
Object Manager has been closed
org.datanucleus.exceptions.NucleusUserException: Object Manager has been closed
at org.datanucleus.ObjectManagerImpl.assertIsOpen(ObjectManagerImpl.java:3876)
at org.datanucleus.ObjectManagerImpl.getFetchPlan(ObjectManagerImpl.java:376)
at org.datanucleus.store.query.Query.getFetchPlan(Query.java:497)
Ich verstehe diesen Teil, das Bit verstehe ich nicht, es ist eine Liste. Soll ich die ganze Liste durchgehen und jeden Gegenstand entfernen? – Jacob
Ja, so habe ich das gemacht. Ich habe es nicht geschafft, eine Liste zu trennen, wenn ich das versuche, bekomme ich eine 'org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException': Die Klasse" Die Klasse "org.datanucleus.store.appengine.query.StreamingQueryResult" ist nicht beständig. Scheint, dass das getan werden muss, wenn Sie möchten, dass die einzelnen Elemente gelöst werden und schließen Sie die PM. – bakkal
Ich muss kommentieren. Vielen Dank! Ich war verrückt !!! –