Bonjour,
Je rencontre des difficultés pour insérer/mettre à jour/supprimé des éléments en base via des cascades.
A noter que j'utilise Hibernate 2.1.8.
Mon but :
Je dispose d'un objet Programme qui contient un set d'objet Controle (assoc bidirectionnelle via table de liaison ProgrammeCtl) :
Un Controle dispose ensuite de plusieurs Set d'objet (one-to-many) comme des Themes ou des Actions.
Dans mon traitement je suis ammené à créer/modifier/supprimer des Contrôles.
Je récupère dans le Set de mon objet Programme les Controles qui m'interesse (sauf dans le cas de la création ou je rajoute mon Controle à créé dans le Set).
Pour la suppression : je supprime mon Controle du Set.
Pour la modification :
Pour modifier les Set associé à mon Controle (Themes, Actions, ...) je créé un nouveau Set et je reaffecte les éléments issue d'un formulaire Web. J'obtiens donc un Set avec les éléments à jours que ce soit pour l'ajout la suppression ou la modification.
A la fin j'update mon Programme et je souhaite donc que tous les changements opérés ce répercute, ce qui n'est au moins pas le cas pour les Set de mon contrôle.
Voici mon mapping (une partie) :
Programme.hbm.xml :
Code:
<!-- La liste des ControleInscrits associes au programme -->
<!-- assoc bidirectionnelle -->
<set name="ctlInscrits" lazy="true" inverse="true" cascade="all">
<key column="GT_PG_ID"/>
<one-to-many class="ProgrammeCtl" />
</set>
ProgrammeCtl.hbm.xml :
Code:
<!-- Le programme -->
<many-to-one name="programme"
column="GT_PG_ID"
class="Programme"
cascade="none"
not-null="true"
outer-join="true"/>
<!-- Les controles inscrits au programme -->
<many-to-one name="controle"
column="GT_CL_ID"
class="ccomptes.sami.controle.metier.bean.Controle"
cascade="save-update"
not-null="true"
outer-join="true"/>
Controle.hbm.xml
Code:
<set name="programmeCtl" table="PROGRAMMECTL" lazy="true" outer-join="false" inverse="true" cascade="all">
<key column="GT_CL_ID" />
<one-to-many class="ccomptes.sami.programme.metier.bean.ProgrammeCtl" />
</set>
<set name="actions" table="ACTION" lazy="true" outer-join="false" cascade="all">
<key column="AC_CL_ID" />
<one-to-many class="ccomptes.sami.controle.metier.bean.Action" />
</set>
<set name="themes" table="THEME" lazy="true" outer-join="false" cascade="all">
<key column="TH_CL_ID" />
<one-to-many class="ccomptes.sami.controle.metier.bean.Theme" />
</set>
Pouvez-vous me dire si le mapping vous semble correct ?
Où est mon erreur ?
Merci