Ciclo de vida de hibernación

Aquí aprenderemos sobre el ciclo de vida de Hibernate o, en otras palabras, podemos decir que aprenderemos sobre el ciclo de vida de las instancias mapeadas de las clases de entidad/objeto en hibernate. En Hibernate, podemos crear un nuevo objeto de una entidad y almacenarlo en la base de datos, o podemos obtener los datos existentes de una entidad de la base de datos. Esta entidad está conectada con el ciclo de vida y cada objeto de la entidad pasa por las distintas etapas del ciclo de vida. 

Hay principalmente cuatro estados del ciclo de vida de Hibernate:

  1. Estado transitorio
  2. Estado persistente
  3. Estado Separado
  4. Estado eliminado

Ciclo de vida de hibernación

Como se muestra en los medios anteriores, uno puede correlacionar cómo se trazan para trazar mejor en nuestra mente. Ahora discutiremos los estados para interpretar mejor el ciclo de vida de hibernación. Es como sigue: 

Estado 1: Estado transitorio

El estado transitorio es el primer estado de un objeto de entidad. Cuando instanciamos un objeto de una clase POJO usando el operador new, entonces el objeto está en estado transitorio. Este objeto no está conectado con ninguna sesión de hibernación. Como no está conectado a ninguna sesión de Hibernate, este estado no está conectado a ninguna tabla de base de datos. Entonces, si hacemos algún cambio en los datos de la clase POJO, la tabla de la base de datos no se modifica. Los objetos transitorios son independientes de Hibernate y existen en la memoria del montón .

Cambio de nuevo objeto a estado transitorio

Hay dos diseños en los que se producirá un estado transitorio de la siguiente manera:

  1. Cuando los objetos son generados por una aplicación pero no están conectados a ninguna sesión.
  2. Los objetos son generados por una sesión cerrada.

Aquí, estamos creando un nuevo objeto para la clase Empleado. A continuación se muestra el código que muestra la inicialización del objeto Empleado:

//Here, The object arrives in the transient state.
Employee e = new Employee();   
e.setId(21);  
e.setFirstName("Neha");  
e.setMiddleName("Shri");  
e.setLastName("Rudra");

Estado 2: Estado persistente

Una vez que el objeto está conectado con la sesión de Hibernate, el objeto pasa al estado persistente. Entonces, hay dos formas de convertir el estado transitorio en el estado persistente:

  1. Utilizando la sesión de hibernación, guarde el objeto de entidad en la tabla de la base de datos.
  2. Usando la sesión hibernada, cargue el objeto de entidad en la tabla de la base de datos.

En este estado. cada objeto representa una fila en la tabla de la base de datos. Por lo tanto, si hacemos algún cambio en los datos, hibernate detectará estos cambios y hará cambios en la tabla de la base de datos.

Conversión de estado transitorio a estado persistente

Los siguientes son los métodos dados para el estado persistente:

  • sesión.persist(e);
  • sesión.guardar(e);
  • sesión.saveOrUpdate(e);
  • session.update(e);
  • sesión.merge(e);
  • sesión.bloqueo(e);

Ejemplo:

// Transient State
Employee e = new Employee("Neha Shri Rudra", 21, 180103); 


//Persistent State
session.save(e);

Estado 3: Estado Separado

Para convertir un objeto de estado persistente a estado separado, debemos cerrar la sesión o borrar su caché. Como la sesión se cierra aquí o se borra la memoria caché, los cambios realizados en los datos no afectarán a la tabla de la base de datos. Siempre que sea necesario, el objeto separado se puede volver a conectar a una nueva sesión de hibernación. Para volver a conectar el objeto separado a una nueva sesión de hibernación, utilizaremos los siguientes métodos de la siguiente manera:

  • unir()
  • actualizar()
  • carga()
  • actualizar()
  • ahorrar()
  • actualizar()

Los siguientes son los métodos utilizados para el estado separado:

  • sesión.separar(e);
  • sesión.evitar(e);
  • sesión.clear();
  • sesión.cerrar();

Conversión de estado persistente a estado separado

Ejemplo 

// Transient State
Employee e = new Employee("Neha Shri Rudra", 21, 180103);

// Persistent State 
session.save(e); 


// Detached State
session.close(); 

Estado 4: Estado eliminado 

En el ciclo de vida de hibernación es el último estado. En el estado eliminado, cuando el objeto de entidad se elimina de la base de datos, se sabe que el objeto de entidad está en estado eliminado. Se hace llamando a la operación delete() . Como el objeto de la entidad está en el estado eliminado, si se realiza algún cambio en los datos, no afectará a la tabla de la base de datos.

Nota: Para hacer un objeto de entidad eliminado, llamaremos a session.delete() .

Conversión de estado persistente a estado eliminado

Ejemplo

// Java Pseudo code to Illustrate Remove State
 
// Transient State
Employee e = new Employee();     
Session s = sessionfactory.openSession();
e.setId(01);


// Persistent State
session.save(e)  

// Removed State                 
session.delete(e);            

Publicación traducida automáticamente

Artículo escrito por nehashrirudra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *