我的实体@OneToOne
和DirigeantsEntreprise
之间的Fournisseur
关系是这样的:
@Entity
@Table(name = "dirigeants_entreprise", catalog = "ao")
public class DirigeantsEntreprise implements java.io.Serializable {
private int idEntreprise;
private Fournisseur fournisseur;
private String nom;
private String poste;
....
@Id
@Column(name = "id_entreprise", unique = true, nullable = false)
public int getIdEntreprise() {
return this.idEntreprise;
}
...
@MapsId
@OneToOne
@JoinColumn(name = "id_entreprise")
public Fournisseur getFournisseur() {
return this.fournisseur;
}
但是当我尝试保存对象时:
....
fournisseur_respository.save(fournisseur);
dirigeants_repo.save( new DirigeantsEntreprise( fournisseur,...,... ));
我遇到了这个例外:
javax.persistence.EntityExistsException:
A different object with the same identifier value was already associated with
the session : [persistence.DirigeantsEntreprise#35]
PS:35是我的fournisseur
我认为问题出在地图上,我有DirigeantsEntreprise
和Fournisseur
两个具有相同标识符35
的对象。
如何解决此问题?
答案 0 :(得分:0)
我们必须按saveAndFlush()
刷新会话,因此它只是一个具有相同标识符的对象。
....
fournisseur_respository.saveAndFlush(fournisseur);
dirigeants_repo.save( new DirigeantsEntreprise( fournisseur,...,... ));