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

Ingresos multiples en hibertante

Estas en el tema de Ingresos multiples en hibertante en el foro de Java en Foros del Web. Quiero ingresar datos a dos tablas (compra,compra_detalle) donde t2 tiene como uno de sus atributos la pk de t1, la forma en que lo hago ...
  #1 (permalink)  
Antiguo 08/04/2013, 09:01
Avatar de henrri  
Fecha de Ingreso: enero-2011
Mensajes: 40
Antigüedad: 13 años, 9 meses
Puntos: 3
Ingresos multiples en hibertante

Quiero ingresar datos a dos tablas (compra,compra_detalle) donde t2 tiene como uno de sus atributos la pk de t1, la forma en que lo hago es
Código:
public int Crear(Compra objCompra) {
        setError(null);
        sesion = HibernateUtil.getSessionFactory().openSession();
        sesion.getTransaction().begin();
        try {
            int codPersona = (Integer) sesion.save(objCompra);
            sesion.getTransaction().commit();
            return codPersona;
        } catch (Exception e) {
            sesion.getTransaction().rollback();
            e.printStackTrace();
            setError(e.getMessage());
        }
        return 0;
    }
donde me retorna un numero que es el id que se ha creado, cabe indicar que mis tablas tiene el pk autoincrementable, el dato retornado me sirve para insertar datos en la tabla compra detalle

Código:
public int Crear(CompraDetalle objCompraDetalle) {
        setError(null);
        sesion = HibernateUtil.getSessionFactory().openSession();
        sesion.getTransaction().begin();
        try {
            int codCompraDetalle = (Integer) sesion.save(objCompraDetalle);
            sesion.getTransaction().commit();
            return codCompraDetalle;
        } catch (Exception e) {
            sesion.getTransaction().rollback();
            e.printStackTrace();
            setError(e.getMessage());
        }
        return 0;
    }
pero que pasaria si el registro en mi segunda tabla fallase, como manejaria ese detalle, ya que como veran los datos en mi primera tabla ya fueron grabados, he visto el uso de transaccion pero no he podido hacerlo hasta ahora.
hay alguna forma de "guardar" los datos de la primera tabla y si solo si en la segunda tabla los datos se registren, este se complete...
  #2 (permalink)  
Antiguo 09/04/2013, 01:12
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: Ingresos multiples en hibertante

Con anotaciones puedes usar @transactional

En todo caso, después de realizar el primer commit haz un sesion.flush() a ver que tal te va.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 09/04/2013, 15:48
Avatar de henrri  
Fecha de Ingreso: enero-2011
Mensajes: 40
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Ingresos multiples en hibertante

eh ahi el detalle como realizarla...

Etiquetas: ingresos, multiples
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 07:18.