Probando la configuración con una transacción

Contactar con el profesor

Conjunto de operaciones contra la base de datos que se realizan de forma atómica (o todas o ninguna).

¿Cuando nos interesa crear una transacción? Cuando modificamos la base de datos (y por tanto deseamos poder hacer rollback()). Para una consulta no es necesario. Crear una transacción consume recursos.

  • Un objeto Session Hibernate representa una única unidad-de-trabajo y es abierta por un ejemplar de SessionFactorySe deben cerrar las sesiones cuando se haya completado todo el trabajo de una transación.
  • En caso de fallo, lo que hay dentro del beginTransaction y el commit no se ejecuta y se salta a un catch.
  • Siempre es más rápido hacer dos operaciones en una sola transacción que dos operaciones en dos transacciones.
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = session.beginTransaction();
Autor a = new Autor();
a.setNombre("Juan");
		
session.save(a);
transaction.commit();
session.close();

setTimeout()

sesion.beginTransaction().setTimeout(400);
  • Si pasados 400 milisegundos la base de datos no devuelve nada, se arrojará una UnCaught Eception (una excepción para la que no es estrictamente neceario tener un try catch; al contrario que las Caught Exception).
  • Este timeout se puede gestionar a nivel de aplicación o a nivel de base de datos.
← Configuración por XML
Métodos de la clase Session →

Aviso Legal | Política de privacidad