I have 2 tables TOMO and MOVIMIENTO and the join table MOVIMIENTO_TOMO.
I use a bag to represent the many to many problem.
Here is the mapping I'm using
Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="MetadatosCuba.Negocio.Entidades.Movimiento.Movimiento, MetadatosCuba.Negocio.Entidades" table="MOVIMIENTO" schema="MODULOCUBA">
<id name="Id" type="Int32" unsaved-value="0">
<column name="ID" />
<generator class="sequence">
<param name="sequence">SEQ_MOVIMIENTO</param>
</generator>
</id>
<bag name="Tomos" inverse="true" lazy="true" cascade="save-update" table="MOVIMIENTO_TOMO">
<key column="IDMOVIMIENTO"/>
<many-to-many class="MetadatosCuba.Negocio.Entidades.Tomos.Tomos, MetadatosCuba.Negocio.Entidades" column="IDTOMO"/>
</bag>
</class>
</hibernate-mapping>
Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="MetadatosCuba.Negocio.Entidades.Tomos.Tomos, MetadatosCuba.Negocio.Entidades" table="TOMO" schema="MODULOCUBA">
<id name="Id" type="Int32" unsaved-value="0">
<column name="ID" />
<generator class="sequence">
<param name="sequence">SEQ_TOMO</param>
</generator>
</id>
<bag name="Movimientos" lazy="true" cascade="save-update" table="MOVIMIENTO_TOMO">
<key> <column name="IDTOMO" not-null="true" /> </key>
<many-to-many class="MetadatosCuba.Negocio.Entidades.Movimiento.Movimiento, MetadatosCuba.Negocio.Entidades" column="IDMOVIMIENTO"/>
</bag>
</class>
</hibernate-mapping>
The problem is that when I use this code
Movimiento move = new Movimiento()
session.Save(move);
Tomo tomo = new Tomo();
session.Save(tomo);
tomo.Movimientos.Add(move);
move.Tomos.Add(tomo);
session.SaveOrUpdateCopy(tomo);
session.SaveOrUpdateCopy(move);
NHibernate deletes all the members of my join table and put the last MOVIMIENTO of my TOMO
What can I do???? Please help