¿Cómo se debe hacer correctamente el "ciclo de vida" de una sesión de Hibernate en Spring?Ciclo de vida de sesión de Spring + Hibernate
SessionFactory
es creado automáticamente por Spring y toma sus conexiones de DB del grupo de conexiones Glassfish. En este momento estoy recibiendo una sesión de Hibernate a través del SessionFactory.getCurrentSession()
. Luego empiezo la transacción, hago el trabajo y luego commit()
o rollback()
al final. ¿Debo realizar alguna otra acción, como disconnect()
, close()
, flush()
o cualquier otra en cualquier momento, para que las conexiones se devuelvan correctamente al grupo o todo lo hace automáticamente Spring?
Con muchos de estos métodos, es un poco confuso para mí en este momento entender cuándo se debe hacer, tal vez alguien puede indicar la dirección correcta.
SessionFactory está en mi sistema configurado como bean singleton, por lo que nunca se cerraría ... – Laimoncijus
@Laimoncijus: SessionFactory es por defecto singleton. Respuesta modificada en consecuencia. Verifíquelo –
Entonces, no necesita configurar sessionfactory singleton. También verifique esta respuesta: http://stackoverflow.com/questions/8523332/close-opened-hibernation-sessions-if-exist/8530891#8530891 –