Hello,

Je n'arrive pas à comprendre pourquoi j'obtiens l'exception suivante

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
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 : 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);
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
 
	/** 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 : 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;