Código:
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 detallepublic 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; }
Código:
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.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; }
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...