Heim > Java > javaLernprogramm > Wann sollte ich „openSession()' vs. „getCurrentSession()' im Ruhezustand für JSP-Web-Apps verwenden?

Wann sollte ich „openSession()' vs. „getCurrentSession()' im Ruhezustand für JSP-Web-Apps verwenden?

Barbara Streisand
Freigeben: 2024-11-28 14:23:10
Original
798 Leute haben es durchsucht

When Should I Use `openSession()` vs `getCurrentSession()` in Hibernate for JSP Web Apps?

Verstehen von Hibernate openSession() vs. getCurrentSession()

Im Zusammenhang mit der Verwendung von Hibernate in JSP-Webanwendungen ist es wichtig, das zu verstehen Unterscheidung zwischen openSession() und getCurrentSession().

1. hibernate.current_session_context_class Einstellung:

Die Eigenschaft hibernate.current_session_context_class bestimmt, wie Hibernate Sitzungen innerhalb einer Webanwendung verwaltet. Wenn Sie es auf „thread“ setzen, kann eine Sitzung an den aktuellen Thread gebunden werden, wodurch der Zugriff auf die Sitzung mithilfe von getCurrentSession() ermöglicht wird.

2. Sitzungsinstanziierung:

  • **SessionFactory.openSession(): Öffnet eine neue Sitzung, die explizit geschlossen werden muss.
  • **SessionFactory.getCurrentSession(): Gibt die aktuelle zurück Sitzung, die dem angegebenen Kontext zugeordnet ist (Thread im Fall der Einstellung „thread“). Das Öffnen und Schließen der Sitzung erfolgt automatisch.

3. Sitzungsbereich:

  • Eine Sitzung pro Web-App: Die Verwendung einer einzelnen Sitzung für die gesamte Anwendung wird nicht empfohlen, da Sitzungen nicht threadsicher sind.
  • Eine Sitzung pro Anfrage: Das Erstellen einer neuen Sitzung für jede HTTP-Anfrage gewährleistet Thread-Sicherheit und verhindert Daten Korruption.
  • Transaktionsbezogene Sitzungen: Bei Verwendung von Spring oder EJBs können Transaktionen für die Sitzungsverwaltung konfiguriert werden.

Empfehlung:

Für JSP-Webanwendungen empfiehlt es sich, SessionFactory.getCurrentSession() zu verwenden, wenn hibernate.current_session_context_class ist auf „thread“ gesetzt und implementiert einen Sitzungsfilter, um den Sitzungslebenszyklus zu verwalten. Dies ermöglicht eine bequeme und effiziente Sitzungsverwaltung innerhalb einer Webanwendungsumgebung.

Das obige ist der detaillierte Inhalt vonWann sollte ich „openSession()' vs. „getCurrentSession()' im Ruhezustand für JSP-Web-Apps 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