Ich bin hier für ein paar Tipps. Ich verwende Hibernate mit Java. Ich habe eine Controller-Schnittstelle implementiert, um die Benutzerschnittstelle von der eigentlichen Kommunikation mit der Datenbank zu trennen. Für die angegebene Schnittstelle habe ich eine Datenbank-Controller-Klasse implementiert, die die eigentliche Kommunikation durchführt. Dies wird von einer statischen Steuerungsfabrik an die Benutzerschnittstelle geliefert.Hibernate Beratung (Sitzung offen halten)
Jetzt entdecke ich, dass der Ruhezustand nicht wirklich alles lade ich in den Speicher werden soll. Für jeden Controller-Methodenaufruf öffne ich immer die Sitzung, mache meine Sachen und schließe die Sitzung. Deshalb, wenn ich versuche, meine Objektstruktur zugreifen Ich bin mit Fehlern aufgefordert, dass
could not initialize proxy - no Session
Mit wenig Aufwand und googeln ich festgestellt, dass das Objekt, an den mein aktives Objekt referenziert wird, ist nicht im Speicher.
Jetzt habe ich die Möglichkeit, die Sitzung geöffnet von dem Moment an halten ich meine Objekten mit bis zum Ende beginnen. Aber es scheint ein bisschen redundant und energieeffizient. Ich denke, ich werde nicht viel verlieren, wenn ich die Sitzung offen halte, aber ich habe irgendwie beabsichtigt, die Benutzeroberfläche rein aus dem Datenbankgeschäft herauszuhalten. Wenn meine Controller-Schnittstelle eine "tearDown" -Methode (und "setUp" -Methode) für die Benutzerschnittstelle hat, scheint sie der gegebenen Logik etwas entgegenzusetzen.
wir brauchen möglicherweise mehr Details zu Ihrer Frage, aber ich schlage vor, Sie überprüfen http://StackOverflow.com/Questions/8493087/hibernate-to-be-la-or-not-to-be-lazy – kommradHomer
Ich bekomme tatsächlich die Grund und ich bekomme, wie ich es vermeiden kann. Ich denke, ich hätte mehr in Richtung Software Engineering. Ich denke, ich wollte herausfinden, was der Standard beim Umgang mit ORM ist, da ich es zum ersten Mal benutze. – Vampnik