【发布时间】:2014-03-04 09:05:50
【问题描述】:
我有名为 Country、City 和 People 的表。我可以防止休眠以保存相同的人对象吗?这是我的课程,问题是当我尝试保存国家/地区对象时,Hibernate 尝试按预期保存或更新相同的人员对象。(城市的人员对象和国家/地区的人员对象具有相同的 PK)
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session
类;
class Country{
.....
@JoinColumn(.....)
@ManyToOne(optional = false, fetch = FetchType.EAGER)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
private City city;
@JoinColumn(.....)
@ManyToOne(optional = false, fetch = FetchType.EAGER)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
private People people;
}
class City{
....
@JoinColumn(.....)
@ManyToOne(optional = false, fetch = FetchType.EAGER)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
private People people;
}
这是我的保存方法;
public void save(){
....
getCurrentSession().saveOrUpdate(customer); //Hibernate session
}
【问题讨论】:
-
您还可以使用实体发布您的代码吗?