Hello,
Je n'arrive pas à comprendre pourquoi j'obtiens l'exception suivante
Lorsque je sauvegarde une entité qui fait référence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: xx.yy.zz.Pays
Je sauvegarde mon adresse en lui settant le Pays (qui vient lui même d'être sauvegarder) et lorsque je définis mon adresse à une entité historiqueAdresse j'obtiens cette exception
La sauvegarde de l'adresse se passe bien mais lorsque je sauvegarde ma deuxième entité ca plante.
Voici un bout de code qui illustre ceci
Le mapping de l'adresse par rapport à pays est le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 adresse.setNpa(npa); adresse.setLocalite(localite); adresse.setCanton(cantonLibelle); adresse.setPays(getPays()); this.adresseService.save(adresse); IntervenantAdresseHistorique historique = new IntervenantAdresseHistorique(); historique.setAdresse(adresse); historique.setIntervenant(selectedDebiteur); this.historiqueService.save(historique);
et le mapping de l'adresse dans l'historique est le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** The pays of the adresse. */ @ManyToOne(fetch = FetchType.EAGER, optional = true) @Cascade((org.hibernate.annotations.CascadeType.SAVE_UPDATE)) private Pays pays;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** The adresse. */ @ManyToOne(fetch = FetchType.EAGER, optional = true) @Cascade((org.hibernate.annotations.CascadeType.SAVE_UPDATE)) private Adresse adresse;
Partager