Lien entre 2 objets et insert
J'ai deux objets equipe et stade, avec chacun un lien vers l'autre.
Pour mon mapping, je fais :
Côté équipe :
Code:
1 2 3 4 5 6
| <many-to-one name="stade"
column="stadeId"
not-null="true"
unique="true"
cascade="all"
/> |
Côté stade :
Code:
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:
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) :
Code:
1 2 3 4 5 6 7
|
uneEquipe.setStade(unStade);
unStade.setEquipe(null);
hibernate.sauver(uneEquipe);
unStade.setEquipe(uneEquipe);
hibernate.sauver (unStade); |
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) !
Que me conseillez vous ?
Merci d'avance,
speechmill