sábado, 1 de octubre de 2011

Estado de los Objetos en Hibernate


Hibernate define estos 3 estados, en los cuales los objetos se encuentran durante la ejecución de nuestra aplicación:
  • Transient: Un Objeto es transiente si fue instanciado con new y no con la session de hibernate. Este objeto no esta persistido y hibernate no lo conoce.
  • Persistent: Un objeto persistido tiene una representación en la base de datos y un identificador. Este fue guardado o recuperado de la base de datos y se encuentra en el ámbito de la sesión de hibernate; quiere decir que hibernate conoce este objeto. Hibernate detecta los cambios en el objeto y sincroniza con el estado de la base de datos.
  • Detached: Un objeto es detached cuando ha sido persistido pero la sesión de hibernate se cerro. La referencia al objeto es valida y puede ser re-atachada a otra sesión de hibernate, por ejemplo con el método saveOrUpdate.
En la siguiente imagen podemos ver como es la transición entre estados de un objeto con hibernate: