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

Problema Hibernate relacion muchos a muchos

Estas en el tema de Problema Hibernate relacion muchos a muchos en el foro de Java en Foros del Web. Hola: Tengo las siguientes tablas: usuarios, perfiles, perfilesxusuarios (esta ultima tiene idusuario, idperfil) Mi problema es que quiero crear un usuario e insertar en la ...
  #1 (permalink)  
Antiguo 06/04/2006, 14:48
 
Fecha de Ingreso: julio-2005
Mensajes: 7
Antigüedad: 18 años, 10 meses
Puntos: 0
Problema Hibernate relacion muchos a muchos

Hola:


Tengo las siguientes tablas: usuarios, perfiles, perfilesxusuarios (esta ultima tiene idusuario, idperfil)

Mi problema es que quiero crear un usuario e insertar en la tabla perfilesxusuario para asignarle un perfil y me da error.

Esto es un codigo de prueba para ver si me introduce los valores, pero falla:

Session session = HibernateUtil.getSessionFactory().openSession();
Tansaction tx = session.beginTransaction();
Usuarios u=new Usuarios();
try{
u.setNombre("Usuario_6");
u.setApellido1("ape_6");
u.setApellido2("ape2_6");
u.getPerfilesxusuarios().add("23");
u.getPerfilesxusuarios().add("24");
session.save(u);
tx.commit();
}catch (HibernateException e) {
tx.rollback();
log.error("ERROR AL CREAR UN USUARIO: "+e);
log.error(e.getMessage());
}finally{
session.flush();
session.close();
}


En mi Usuarios.hbm.xml tengo esto:

<set name="perfilesxusuarios" inverse="true">
<key>
<column name="idusuario" not-null="true" />
</key>
<one-to-many class="es.nucleo.hibernate.datos.Perfilesxusuario" />
</set>

En mi Perfiles.hbm.xml tengo esto:

<set name="perfilesxusuarios" inverse="true">
<key>
<column name="idperfil" not-null="true" />
</key>
<one-to-many class="es.nucleo.hibernate.datos.Perfilesxusuario" />
</set>

En mi Perfilesxusuario.hbm.xml tengo esto:

<many-to-one name="perfiles" class="es.nucleo.hibernate.datos.Perfiles" update="false" insert="false" fetch="select">
<column name="idperfil" not-null="true" />
</many-to-one>
<many-to-one name="usuarios" class="es.nucleo.hibernate.datos.Usuarios" update="false" insert="false" fetch="select">
<column name="idusuario" not-null="true" />
</many-to-one>

El error que me da es este:

ERROR org.hibernate.property.BasicPropertyAccessor.get - IllegalArgumentException in class: es.nucleo.hibernate.datos.Perfilesxusuario, getter method of property: id
ERROR org.hibernate.event.def.AbstractFlushingEventListe ner.performExecutions - Could not synchronize database state with session
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of es.nucleo.hibernate.datos.Perfilesxusuario.id


Utilizo java1.5, hibernate 3, postgreSQL 8.1, Tomcat 5.5, Struts 1.2.8 y los archivos de mapeo los he generado con Hibernate Tools.

Por favor ayuda, porque por mucho que busco e intento no logro encontrar la solución.

Muchas gracias de antemano.
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:07.