![]() |
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. |
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 |
| La zona horaria es GMT -6. Ahora son las 05:48. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.