Saltar al contenido

Tutorial de Hibernate: Ejemplo de gestión de transacciones de Hibernate

octubre 16, 2021

A transacción simplemente representa una unidad de trabajo. En tal caso, si un paso falla, toda la transacción falla (lo que se denomina atomicidad). Una transacción puede describirse mediante propiedades ACID (atomicidad, consistencia, aislamiento y durabilidad).

Gestión de transacciones

Interfaz de transacción en Hibernate

En el marco de hibernación, tenemos Transacción interfaz que define la unidad de trabajo. Mantiene la abstracción de la implementación de la transacción (JTA, JDBC).

Una transacción se asocia con Session y se crea una instancia llamando session.beginTransaction ().

Los métodos de la interfaz de transacción son los siguientes:

  1. comienzo vacío () inicia una nueva transacción.
  2. cometer nulo () finaliza la unidad de trabajo a menos que estemos en FlushMode.NUNCA.
  3. anular reversión () obliga a esta transacción a deshacerse.
  4. void setTimeout (int segundos) establece un tiempo de espera de transacción para que cualquier transacción iniciada por una llamada posterior comience en esta instancia.
  5. boolean isAlive () comprueba si la transacción sigue viva.
  6. Void registerSynchronization (Sincronización s) registra una devolución de llamada de sincronización de usuario para esta transacción.
  7. booleano wasCommited () comprueba si la transacción se ha realizado correctamente.
  8. booleano wasRolledBack () comprueba si la transacción se retrotrae correctamente.

Ejemplo de gestión de transacciones en Hibernate

En hibernación, es mejor revertir la transacción si ocurre alguna excepción, para que los recursos puedan estar libres. Veamos el ejemplo de gestión de transacciones en hibernación.

Sesión de sesión = nula; Transacción tx = nulo; intente {sesión = sessionFactory.openSession (); tx = session.beginTransaction (); // alguna acción tx.commit (); } captura (Excepción ex) {ex.printStackTrace (); tx.rollback (); } finalmente {session.close ();}

close