La principal investigación en este artículo es el cierre de Hibernate en la sesión, como sigue.
Estudiante estudiante = nuevo estudiante (); Student.SetName ("Jan"); Student.setage ("22"); Student.SetAddress ("Zhaoqing City, provincia de Guangdong"); Sesión sesión = hibernateUtil.getSessionFactory (). GetCurrentSession (); session.BeginTransaction (); Session.save (estudiante); session.flush (); session.getTransaction (). Commit (); 1. ¿Cuál es la diferencia entre GetCurrentSession () y OpenSession ()?
getCurrentSession() estará vinculada al hilo actual, mientras que la sesión creada con openSession() no serágetCurrentSession() se cerrará automáticamente cuando la confirmación o reversión, mientras que la sesión creada con openSession() debe cerrarse manualmente. 2. Para usar getCurrentSession() debe agregar la siguiente configuración al archivo hibernate.cfg.xml:
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.current_session_context_class">jta</property>
¿Cuál es la diferencia y la correlación entre openSession() y getCurrentSession() ?
Cuando se inicia SessionFactory, Hibernate creará el CorrentSessessionContext correspondiente de acuerdo con la configuración. Cuando se llama getCurrentSession() , el método real que se ejecuta es CurrentSessionContext.currentSession() . Cuando se ejecuta currentSession() , si la sesión actual está vacía, la Corriente Corriente llamará a la Abertura de SessionFactory. Por lo tanto, getCurrentSession() es una mejor manera de obtener una sesión para Java EE.
Muchas veces session is close(); La razón es que lo configuras en hibernate.cfg.xml
<propiedad name = "hibernate.current_session_context_class"> Thread </Property>
El sistema cierra la sesión después de commit(); Después de ejecutarlo. En este momento, si cierra manualmente la sesión, por supuesto indicará un error.
Lo anterior es todo el contenido de este artículo sobre el análisis de la instancia cerrada de Hibernate en la sesión, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!