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

Error Hibernate Relación Many-to-Many

Estas en el tema de Error Hibernate Relación Many-to-Many en el foro de Java en Foros del Web. Hola!!! Tengo una relacion many-to-many. Si creo un padre y le añado los hijos (relacion N:M) y hago un save en la BBDD me da ...
  #1 (permalink)  
Antiguo 05/08/2008, 06:15
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Error Hibernate Relación Many-to-Many

Hola!!!

Tengo una relacion many-to-many. Si creo un padre y le añado los hijos (relacion N:M) y hago un save en la BBDD me da el siguiente error:

Hibernate: select PIPS_SQ_TAREAS.nextval from dual
Hibernate: insert into PIPSR_TAREAS (CD_TIPO_SERV, CD_ESTADO, CD_MERCADO, CD_PLANIFICACION, FH_INICIO, FH_FIN, FH_REGISTRO, NU_OBJETIVO, DS_OBSERVACIONES, ID_TAREA) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: update PIPSR_RRHH set CD_TIPO_TECNICO=?, CD_DDPP=?, CD_CARGO=?, CD_CENTRO=?, CD_TIPO_SERV=?, TX_NOMBRE=?, TX_APELLIDO1=?, TX_APELLIDO2=?, NU_TELEFONO=?, TX_NIF=?, TX_EMAIL=? where ID_RRHH=?
Hibernate: update PIPSR_RRHH set CD_TIPO_TECNICO=?, CD_DDPP=?, CD_CARGO=?, CD_CENTRO=?, CD_TIPO_SERV=?, TX_NOMBRE=?, TX_APELLIDO1=?, TX_APELLIDO2=?, NU_TELEFONO=?, TX_NIF=?, TX_EMAIL=? where ID_RRHH=?
Hibernate: insert into PIPSR_TAREA_RRHH (CD_TAREA, CD_RRHH) values (?, ?)
Hibernate: insert into PIPSR_TAREA_RRHH (CD_TAREA, CD_RRHH) values (?, ?)
net.sf.hibernate.exception.ConstraintViolationExce ption: Could not execute JDBC batch update
...
Caused by: java.sql.BatchUpdateException: ORA-02291: restricción de integridad (EQ_PIPS.PIPSR_TARRH_TAREA_FK) violada - clave principal no encontrada

Alguien sabe que estoy haciendo mal en el mapeo para que esto no funcione.

Saludos y muchas gracias!!!!!
  #2 (permalink)  
Antiguo 05/08/2008, 08:06
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Error Hibernate Relación Many-to-Many

Hola,

podrias poner tus mapeos de las dos tablas para ayudarte un poquito mas??

Gracias!
  #3 (permalink)  
Antiguo 07/08/2008, 00:36
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Error Hibernate Relación Many-to-Many

El mapero de la clase padre Tarea:

<hibernate-mapping package="com.dap.pip.modelo">
<class name="Tarea" table="PIPSR_TAREAS">
<id name="idTarea" column="ID_TAREA" type="java.lang.Integer">
<generator class="sequence">
<param name="sequence">PIPS_SQ_TAREAS</param>
</generator>
</id>
<many-to-one name="tipoServicioTarea" class="TipoServicioTarea"><column name="CD_TIPO_SERV"/>
</many-to-one>
...
<set name="tareasRRHH" table="PIPSR_TAREA_RRHH" cascade="all-delete-orphan" >
<key column="CD_TAREA"/>
<many-to-many class="RecursoHumano" column="CD_RRHH"/>
</set>
</class>
</hibernate-mapping>


Mapeo de la clase hija:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="com.dap.pip.modelo">
<class name="RecursoHumano" table="PIPSR_RRHH">
<id name="idRRHH" column="ID_RRHH" type="java.lang.Integer">
<generator class="sequence">
<param name="sequence">PIPS_SQ_RRHH</param>
</generator>
</id>
<many-to-one name="tipoTecnico" class="TipoTecnico"><column name="CD_TIPO_TECNICO"/>
</many-to-one>
...

<set name="tareas" inverse="true" table="PIPSR_TAREA_RRHH">
<key column="CD_RRHH"/>
<many-to-many class="Tarea" column="CD_TAREA"/>
</set>
</class>
</hibernate-mapping>

Gracias!!!!
  #4 (permalink)  
Antiguo 08/08/2008, 04:54
Avatar de Llave  
Fecha de Ingreso: abril-2005
Ubicación: Galicia
Mensajes: 52
Antigüedad: 19 años
Puntos: 1
Respuesta: Error Hibernate Relación Many-to-Many

Ahora no tengo tiempo de ver muy bien tu caso, si luego puedo dedicarle algo de tiempo, lo miro y te digo.

Pero échale un ojo a esta documentación donde explica muy bien como mapear diversas relaciones en Hibernate (desde una 1-n, hasta las N-M).
Espero que te sirva.

http://ndpsoftware.com/HibernateMappingCheatSheet.html
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 11:15.