Hibernate: openSession() vs getCurrentSession() in JSP-Anwendungen
In Webanwendungen, die Hibernate nutzen, stellen sich mehrere Fragen bezüglich der Sitzungsverwaltung. Nachfolgend finden Sie einige häufig gestellte Fragen mit den entsprechenden Antworten.
1. hibernate.current_session_context_class-Wert
Um die automatische Sitzungsverwaltung mithilfe der aktuellen Sitzungsstrategie zu aktivieren, setzen Sie die Konfigurationseigenschaft hibernate.current_session_context_class auf Thread.
2. openSession() vs getCurrentSession()
-
openSession(): Erstellt eine neue Sitzung unabhängig von einer vorhandenen Sitzung. Dieser Ansatz erfordert das manuelle Öffnen und Schließen der Sitzung, was umständlich und anfällig für Ressourcenlecks sein kann.
-
getCurrentSession(): Ruft die aktuelle Sitzung ab, die dem aktuellen Thread oder der aktuellen Transaktion zugeordnet ist. Wenn keine Sitzung vorhanden ist, wird automatisch eine geöffnet. Dieser Ansatz ermöglicht die Ausführung dauerhafter Vorgänge, ohne explizit Sitzungen zu erstellen und zu schließen.
3. Eine Sitzung pro Web-App vs. eine Sitzung pro Anfrage
-
Eine Sitzung pro Web-App: Die Verwendung einer einzelnen Sitzung in der gesamten Web-App wird nicht empfohlen, da dies bei Sitzungen nicht der Fall ist Thread-sicher und kann nicht gleichzeitig geteilt werden. Dieser Ansatz kann zu Synchronisierungsproblemen und Dateninkonsistenzen führen.
-
Eine Sitzung pro Anfrage: Diese Strategie erstellt eine neue Sitzung für jede HTTP-Anfrage. Es vereinfacht die Sitzungsverwaltung, stellt die Datenintegrität sicher und ist im Allgemeinen der bevorzugte Ansatz für Webanwendungen.
Das obige ist der detaillierte Inhalt vonRuhezustand in JSP-Anwendungen: „openSession()' vs. „getCurrentSession()' – Was sollte ich verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!