¿Cómo se crea la sesión de Hibernate?
Hibernat
El funcionamiento de la base de datos se implementa a través de Session. La sesión aquí es diferente de la sesión que transfiere parámetros entre páginas.
Es similar a. JDBC.
Conexión en formato . La sesión es el centro de la operación de Hibernate. El ciclo de vida de los objetos, la gestión de transacciones y el acceso a la base de datos están estrechamente relacionados con la sesión.
La sesión es creada por HibernateSessionFactory y es segura para subprocesos, lo que permite que múltiples subprocesos de ejecución accedan a ella al mismo tiempo
HibernateSessionFactory sin datos** * Compartir problema, pero no se puede permitir que varios subprocesos compartan una sesión.
Creación del objeto SessionFactory:
Código Java
Configuración
cfg
=
new
Configuración().configure();
SessionFactory
sesiones
=
cfg .buildSessionFactory();
Cuando se crea la sesión, se utiliza una clase ThreadLocal para establecer una clase auxiliar para la gestión de sesiones. El uso de ThreadLocal puede aislar eficazmente los datos utilizados para la ejecución.
Evitar los problemas de intercambio de datos de sesión entre varios subprocesos.
//Crea una variable local de hilo.
Código Java
público
estático
final
ThreadLocal
threadlocal
=
nuevo
ThreadLocal
();
público
estático
org.hibernate.SessionFactory
sessionFactory;
//Método para obtener la sesión
pública
estática
Sessin
getSession()
throws
HibernateException{
//Devuelve el hilo actual del hilo local variables El valor de
Session
s
=
(Session)threadLocal.get();
/ /Si sessionFactory está vacío, vuelva a crear sessionFactory; si el hilo está vacío, abra una nueva sesión
if(session==null
||
!session.isOpen()){
if(sessionFactory
==
null){
rebuildSessionFactory();
p>sesión
=
(sessionFactory
!=
null)
sessionFactory. openSession(): null;
//
Coloque la sesión de hibernación en el hilo y guárdela, siempre que el hilo no finalice, se puede obtener; a través del método get() del hilo
threadLocal.set(session return
session;
;