Foros del Web » Programación para mayores de 30 ;) » Java »

Insertar una Lista de Objetos con Hibernate

Estas en el tema de Insertar una Lista de Objetos con Hibernate en el foro de Java en Foros del Web. Hola amigos. tengo una pequeña duda. Tengo un conjunto de objetos. digamos de unos 400 objetos que necesito insertar a la base de datos usando ...
  #1 (permalink)  
Antiguo 08/05/2011, 11:53
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Insertar una Lista de Objetos con Hibernate

Hola amigos. tengo una pequeña duda.
Tengo un conjunto de objetos. digamos de unos 400 objetos que necesito insertar a la base de datos usando Hibernate, el problema que es que necesito mantener la integridad. es decir que tengo que insertar todos los objetos de la lista, o en caso contrario si existe algún problema con uno de ellos, no insertar ninguno.

Como manejo las transacciones en Hibernate?
se que se debe realizar con el commit(), o el rollback()

sin embargo cuando uso la función save(); creo que en ese momento lo inserta,
sin necesidad de commit();?

Soy nuevo en hibernate, grcias saludos.
  #2 (permalink)  
Antiguo 08/05/2011, 12:11
 
Fecha de Ingreso: enero-2008
Mensajes: 197
Antigüedad: 16 años, 4 meses
Puntos: 10
Respuesta: Insertar una Lista de Objetos con Hibernate

Puedes usar persist en lugar de save, ademas usa una transaction generandola de la session de hibernate, cuando termines y todo se inserte correctamente entonces le das transaction.commit y si hay error le das transaction.rollback.

ejemplo Usando Spring y Hibernate:

Código Java:
Ver original
  1. Session s = null;
  2. Transaction tx = null;
  3.  
  4.         try {
  5.  
  6.             s = this.getHibernateTemplate().getSessionFactory().openSession();
  7.             tx = s.beginTransaction();
  8.  
  9. /* Tu codigo de persist*/
  10. for(Object object: listaObjects) {
  11. s.persist(object);
  12. }
  13.  
  14.  
  15. tx.commit();
  16.  
  17.         } catch(HibernateException he) {
  18.             LOG.error(he.getMessage(), he);
  19.             if(Validator.isNotNull(tx)) {
  20.                 tx.rollback();
  21.                 LOG.error("Transaction Rolled Back.");
  22.             }
  23.         } finally {
  24.             if(Validator.isNotNull(s)) {
  25.                 s.clear();
  26.                 s.close();
  27.                 LOG.debug("Hibernate Session Cleared and Closed.");
  28.             }
  29.         }
  #3 (permalink)  
Antiguo 08/05/2011, 12:28
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Insertar una Lista de Objetos con Hibernate

muchisimas gracias amigo, en este momento lo pruebo, y comento como me fue
  #4 (permalink)  
Antiguo 08/05/2011, 18:07
 
Fecha de Ingreso: febrero-2010
Ubicación: Gran Canaria
Mensajes: 280
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: Insertar una Lista de Objetos con Hibernate

Añade una condición para sí hay algún problema no realice ni el save() ni el commit() y limpias la sesión .clear()

Ten siempre a mano la documentación, ayuda mucho, por ejemplo para saber la diferencia entre métodos >> http://docs.jboss.org/hibernate/core/3.5/api/

Saludos
  #5 (permalink)  
Antiguo 11/05/2011, 12:40
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Insertar una Lista de Objetos con Hibernate

Hola amigos. ya lo probe con 1000 registros funciona perfecto, gracias

Etiquetas: hibernate, lista, objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:05.