Die Hauptforschung in diesem Artikel ist die Schließung von Winterschlaf in der Sitzung wie folgt.
Student Student = New Student (); Student.SetName ("Jan"); Student.Setage ("22"); Student.SetAddress ("Zhaoqing City, Provinz Guangdong"); Session Session = hibernateUtil.getSessionFactory (). GetCurrentSession (); Sitzung.BeginTransaction (); Sitzung.Save (Student); Session.flush (); Session.Gettransaction (). commesent (); 1. Was ist der Unterschied zwischen GetCurrentSession () und OpenSession ()?
getCurrentSession() erstellte Sitzung wird an den aktuellen Thread gebunden, während die mit openSession() erstellte Sitzung nicht sein wirdgetCurrentSession() erstellte Sitzung wird beim Loting oder Rollback automatisch geschlossen, während die mit openSession() erstellte Sitzung manuell geschlossen werden muss. 2. Um getCurrentSession() müssen Sie die folgende Konfiguration zur Hibernate.cfg.xml -Datei hinzufügen:
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.current_session_context_class">jta</property>
Was ist der Unterschied und die Korrelation zwischen openSession() und getCurrentSession() ?
Wenn SessionFactory gestartet wird, erstellt Hibernate den entsprechenden CurrentSessionContext gemäß der Konfiguration. Wenn getCurrentSession() aufgerufen wird, ist die tatsächliche ausführende Methode CurrentSessionContext.currentSession() . Wenn currentSession() ausgeführt wird, wird bei leerer Sitzung eine OpenSession von SessionFactory aufgerufen. getCurrentSession() ist also eine bessere Möglichkeit, eine Sitzung für Java EE zu erhalten.
Oft session is close(); Der Grund dafür ist, dass Sie es in hibernate.cfg.xml festlegen
<Eigenschaft name = "hibernate.current_session_context_class"> thread </Eigenschaft>
Das System schließt die Sitzung nach commit(); Nach dem Ausführen. Wenn Sie die Sitzung manuell schließen, zeigt dies natürlich einen Fehler an.
Das obige ist der Inhalt dieses Artikels über die Analyse der geschlossenen Instanz von Hibernate in der Sitzung. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!