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

Hacer un insert con Hibernate

Estas en el tema de Hacer un insert con Hibernate en el foro de Java en Foros del Web. Hola!!! Estoy intentando hacer un insert en mi base de datos utilizando hiberante. El insert lo quiero hacer a un objeto que contiene hijos. Según ...
  #1 (permalink)  
Antiguo 29/07/2008, 12:10
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Hacer un insert con Hibernate

Hola!!!

Estoy intentando hacer un insert en mi base de datos utilizando hiberante.
El insert lo quiero hacer a un objeto que contiene hijos.
Según he estado mirando se haría de la siguiente manera:

hbm.-

<class name="Tarea" table="TAREA">
<id name="idTarea" column="ID_TAREA" type="java.lang.Integer">
<generator class="sequence">
<param name="sequence">SQ_TAREA</param>
</generator>
<many-to-one name="tipo" class="Tipo"><column name="CD_TIPO"/></many-to-one>
<property name="nombre" column="NOMBRE" type="java.lang.String"/>
...
<set name="TareasRRHH" table="TAREA_RRHH" cascade="save-update">
<key column="ID_TAREA"/>
<many-to-many class="RecursoHumano" column="ID_RRHH"/>
</set>

clase.-
Tarea tarea= new Tarea();
tarea.setNombre("Tarea1");
tarea.setTipo(1);
RecursoHumano rrhh = session.get(RecursoHumano.class, new Integer(1));
tarea.getTareasRRHH().add(rrhh);
session.save(tarea);
tx.commit();

Error.-
Al hacer el commit me dice: restrincción de integridad violada- clave principal no encontrada.
Yo creo que al intentar inserta el hijo no encuentra el identificador del padre, pero no estoy seguro, puede alguien echarme una mano, sabe alquien cual es mi error???

Muchas gracias!!!!!
  #2 (permalink)  
Antiguo 29/07/2008, 12:26
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Hacer un insert con Hibernate

Hola,

Verifica que la tabla RecursoHumano exista el id=1.

Al utilizar session.get() quieres decir que no estas seguro de que exista el id con el valor que le estas pasando.

Al utilizar session.load() le estas diciendo que estas seguro que el valro del id esta en la base de datos.

Puedes validar si existe:
RecursoHumano rrhh = session.get(RecursoHumano.class, new Integer(1));
if(rrhh!=null) {
tarea.getTareasRRHH().add(rrhh);
session.save(tarea);
tx.commit();
}


saludos!
  #3 (permalink)  
Antiguo 04/08/2008, 04:04
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Hacer un insert con Hibernate

Hola!!!

He verificado que exita y me sigue dando el mismo error.
Puede que tenga algo mal mapeado???
La relación es many-to-many tiene que tener el mapelo algo especial para que esto funcione correctamente.

Gracias!!!!
  #4 (permalink)  
Antiguo 04/08/2008, 04:08
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Hacer un insert con Hibernate

Hola!
El error que me da es este:

Caused by: java.sql.BatchUpdateException: ORA-02291: restricción de integridad (EQ_PIPS.PIPSR_TARRH_TAREA_FK) violada - clave principal no encontrada

Saludos!!!
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 09:11.