Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

insertar datos en tablas con realcion muchos a muchos con hibernate

Estas en el tema de insertar datos en tablas con realcion muchos a muchos con hibernate en el foro de Bases de Datos General en Foros del Web. hola ya he mapeado toda mi base de datos que esta en postgresql, pero tengo un problimita a la hora de insertar datos en tablas ...
  #1 (permalink)  
Antiguo 12/05/2008, 15:21
rls
 
Fecha de Ingreso: marzo-2008
Mensajes: 48
Antigüedad: 16 años, 1 mes
Puntos: 0
insertar datos en tablas con realcion muchos a muchos con hibernate

hola ya he mapeado toda mi base de datos que esta en postgresql, pero tengo un problimita a la hora de insertar datos en tablas que tienen relacion de muchos a muchos.
Las tablas que tengo son:

fin(idfin,descripcion)
indicadores(idind,descripcion)
finindicador(idfin,idind)

como pueden ver "fin" e "indicadores" son las tablas fuertes y "finindicador" es tabla que se crea debido a que las dos tablas antes mencionadas tienen una relacion de muchos a muchos.

El mapeo lo hice de la siguiente forma:

Archivo: Fin.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//hibernate/hibernate Mapping DTD 2.0//EN"
"webapps/mml/WEB-INF/src/hibernate-mapping-2.0.dtd">
<hibernate-mapping>

<class name="tablas.Fin" table="fin">
<id name="idfin" type="long">
<generator class="increment"/>
</id>
<set name="indicador" table="finindicador" cascade="all">
<key column="idfin"/>
<many-to-many column="idind" class="tablas.Indicadores"/>
</set>
</class>
</hibernate-mapping>

archivo: Indicadores.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//hibernate/hibernate Mapping DTD 2.0//EN"
"webapps/mml/WEB-INF/src/hibernate-mapping-2.0.dtd">
<hibernate-mapping>

<class name="tablas.Indicadores" table="indicadores">
<id name="idind" type="long">
<generator class="increment"/>
</id>
<set name="fin" table="finindicador" inverse="true" cascade="all">
<key column="idind"/>
<many-to-many column="idfin" class="tablas.Fin"/>
</set>
</class>
</hibernate-mapping>

Y el metodo que tengo para insertar es:

private boolean insertarFin(String xidfin, String xdescripcion) {
boolean b=true;
try {
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
Fin fin = (Fin)session.load(Fin.class, new Long(xidfin));
Indicadores indicador=new Indicadores();
indicador.setDescripcion(xdescripcion);
indicador.getFin().add(fin);
session.save(indicador);
tx.commit();
HibernateUtil.closeSession();
} catch (HibernateException e) {
b=false;
e.printStackTrace();
}
return b;
}


Como podemos ver en el codigo,primero se obtine un registro de la tabla "fin", el mismo se lo adiere a la coleccion que esta en la clase Indicadores y luego guarda los datos. El problema que tengo es que solo inserta en la tabla "indicadores" y tambien deberia insertar los ids de las tabla "fin" e "indicadores" en la tabla "finindicador", pero no lo hace y no entiendo porque.

Si alguien me podria ayudar se lo agradeceria enormemente.
  #2 (permalink)  
Antiguo 13/05/2008, 01:24
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: insertar datos en tablas con realcion muchos a muchos con hibernate

Esto es BD, en un foro de hibernate te lo solucionarán mejor.

Un saludo
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 21:21.