Sie sollten Ihre Sitzung so lange beibehalten, wie Sie mit Ihrer Datenbank verbunden werden möchten.
Aber Sitzungen sind keine Thread-sicheren Objekte und können nicht von mehreren Threads gemeinsam genutzt werden. Sie sollten also eine Sitzung pro Anfrage verwenden.
So Grund ist, wenn Sie eine Single-Thread-Anwendung verwenden, dann ist es besser, eine Sitzung für Ihre gesamte Anwendung zu verwenden. Sie können dazu SessionFactory.getCurrentSession()
verwenden.
Wenn Ihre Anwendung jedoch für mehrere Threads freigegeben ist, sollten Sie immer neue Sitzungen mit SessionFactory.openSession()
öffnen. Obwohl das langsamer als das vorherige ist, ist es Thread-sicher.
Wissen Sie, wo könnte es
Am besten ist es behandelt werden, um sie in finally
Block zu schließen. Wenn Sie jedoch Java SE 7 und höher verwenden, können Sie sie auch in try-with-resources
behandeln.
@ScaryWombat in Java SE 7 und später –