J'ai deux objets equipe et stade, avec chacun un lien vers l'autre.
Pour mon mapping, je fais :
Côté équipe :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <many-to-one name="stade" column="stadeId" not-null="true" unique="true" cascade="all" />
Côté stade :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <many-to-one name="equipe" column="equipeId" not-null="false" unique="true" />
Puis, voici mon code (un peu nettoyé pour plus de lisibilité) :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 uneEquipe.setStade(unStade); unStade.setEquipe(uneEquipe); hibernate.sauver(uneEquipe);
Je n'arrive pas à sauvegarder/insérer mes objets en base... hibernate me dit que quand il veut sauver en base le stade, l'objet equipe est transient. Normal, vu qu'il n'est pas encore en base, et qu'il le sera une fois le stade sauvegardé. C'est donc un cercle vicieux.
Comment faire ? Car je ne sais pas si faire cela est mieux (en déclarant dans le mapping que equipe peut être null pour un stade) :
Je doute que ce soit très optimisé et je n'ose imaginer ce qu'il faut faire pour sauver de la même manière des listes d'objets (toujours avec une relation dans les deux sens) !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 uneEquipe.setStade(unStade); unStade.setEquipe(null); hibernate.sauver(uneEquipe); unStade.setEquipe(uneEquipe); hibernate.sauver (unStade);
Que me conseillez vous ?
Merci d'avance,
speechmill
Partager