org.hibernate.TransientObjectException: object references an unsaved
Hello,
Je n'arrive pas à comprendre pourquoi j'obtiens l'exception suivante
Code:
1 2
|
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: xx.yy.zz.Pays |
Lorsque je sauvegarde une entité qui fait référence.
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
Code:
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); |
Le mapping de l'adresse par rapport à pays est le suivant
Code:
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; |
et le mapping de l'adresse dans l'historique est le suivant
Code:
1 2 3 4 5
|
/** The adresse. */
@ManyToOne(fetch = FetchType.EAGER, optional = true)
@Cascade((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
private Adresse adresse; |