Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 12-may-2008, 15:21   #1 (permalink)
rls
rls ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 6
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.
rls está desconectado   Responder Citando
Antiguo 13-may-2008, 01:24   #2 (permalink)
seyko ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 975
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
seyko está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:03.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93