Heim > Java > javaLernprogramm > Hauptteil

Sitzungsverwaltung im Ruhezustand: openSession() vs getCurrentSession() – Welches sollten Sie verwenden?

Barbara Streisand
Freigeben: 2024-11-09 19:04:02
Original
327 Leute haben es durchsucht

Hibernate Session Management: openSession() vs getCurrentSession() - Which One Should You Use?

Grundlegendes zur Sitzungsverwaltung von Hibernate: openSession() vs. getCurrentSession()

Hibernate bietet zwei Methoden zur Sitzungsverwaltung: openSession() und getCurrentSession( ). Jedes hat spezifische Verwendungszwecke und bietet unterschiedliche Kontrollebenen.

1. hibernate.current_session_context_class:

Diese Eigenschaft bestimmt, wie Hibernate Sitzungen in einem Webanwendungskontext verwaltet. Es kann entweder auf „Thread“ oder „verwaltet“ eingestellt werden.

2. openSession() vs getCurrentSession():

openSession(): Erstellt eine neue Sitzung. Die Sitzung ist an keinen Kontext gebunden und muss nach der Verwendung explizit geschlossen werden. Es wird normalerweise verwendet, wenn Sie vollständige Kontrolle über den Sitzungslebenszyklus benötigen.

getCurrentSession(): Ruft die Sitzung ab, die an den aktuellen Thread oder Kontext gebunden ist. Wenn keine Sitzung vorhanden ist, wird eine neue Sitzung geöffnet und an den aktuellen Kontext gebunden. Diese Methode wird im Allgemeinen in einer Webanwendung bevorzugt, bei der die Sitzung innerhalb einer einzelnen HTTP-Anfrage bestehen bleiben soll.

Zusammenfassend lässt sich sagen, dass getCurrentSession() innerhalb eines Servlet-Filters verwendet werden kann, wenn Sie hibernate.current_session_context_class auf „thread“ setzen oder eine andere Thread-basierte Komponente zum Öffnen und Zugreifen auf eine Sitzung.

3. Sitzungslebensdauer:

Eine Sitzung pro Web-App: Nicht empfohlen, da Sitzungen nicht threadsicher sind und möglicherweise mehrere Anforderungsthreads auf dieselbe Sitzung zugreifen können, was zu Parallelitätsproblemen führt.

Eine Sitzung pro Anfrage: Bevorzugt in Webanwendungen. Dadurch wird sichergestellt, dass jede Anfrage über eine eigene separate Sitzung verfügt, wodurch Bedenken hinsichtlich Parallelität und Thread-Sicherheit beseitigt werden.

Das obige ist der detaillierte Inhalt vonSitzungsverwaltung im Ruhezustand: openSession() vs getCurrentSession() – Welches sollten Sie verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage