2016-08-15 1 views
0
  1. OpenSession() immer eine neue Sitzung öffnen.
  2. GetCurrentSession() kehrt Sitzung zum

GetCurrentSession(), um Open ist schnell zu vergleichen Kontext gebunden(), so kann ich davon ausgehen, GetCurrentSession als Open besser ist()Wann OpenSession() und GetCurrentSession() verwenden

In welchem ​​Fall sollte ich Verwenden Sie openSession() und GetCurrentSession()

+0

Absolut nichts mit JPA API tun müssen. Das Tag wurde entfernt –

Antwort

2

openSession -> Wenn wir diese Methode verwenden, müssen wir die Sitzung flush() und schließen(). Es wird nicht automatisch gespült und geschlossen(). Wir können diese Methode verwenden, wenn wir uns entschieden haben, die Sitzung selbst zu verwalten.

getCurrentSession -> Eine Sitzung wird immer dann geöffnet, wenn getCurrentSession() zum ersten Mal aufgerufen und nach Beendigung der Transaktion geschlossen wird. Dies erstellt eine brandneue Sitzung, wenn eine nicht vorhanden ist oder eine vorhandene Sitzung verwendet, falls bereits eine vorhanden ist. Es wird automatisch mit den Auto-Flush- und Auto-Close-Attributen konfiguriert. Dies bedeutet, dass die Sitzung automatisch geleert und geschlossen wird. Wir können die Methode getCurrentSession() verwenden, wenn unsere Transaktion lange läuft.

getCurrentSession ist in der Regel ausreichend. openSession bietet und ermöglicht ein höheres Maß an Verwaltung, wo die Sitzung gespeichert und verwaltet wird. Es ist sicherlich eine fortgeschrittene Option, aber eine, die in der Tat die Bedürfnisse von sehr cleveren Entwicklern erfüllt, die einige nette Dinge mit der Sitzung machen.

Hinweis: Die Verwendung getCurrentSession(), um die Sitzung zu erstellen, wird zu einem Festschreiben oder Zurücksetzen automatisch beendet, und mit Open(), um die Sitzung zu erstellen, werden manuelle Beendigung

Verwandte Themen