Possible Duplicate:
Spring + Hibernate : a different object with the same identifier value was already associated with the session插入相同的對象屬性在休眠+春
我有以下對象(簡化的)作爲一個JavaBean:
public class Person {
private Integer id;
private City cityOfBirth;
private City city;
// ...
}
而在我的彈簧形式I具有2個選擇連擊以選擇這兩個城市,具體如下:
<form:form method="post" action="" commandName="person">
City of birth: <form:select path="cityOfBirth" items="${ cities }" itemValue="id" />
City: <form:select path="city" items="${ cities }" itemValue="id" />
...
</form:form>
我對市級只會叫我CityDao的get屬性編輯器,至極如下:
@Component
public class CityDaoImpl implements CityDao {
private @Autowired HibernateTemplate hibernateTemplate;
public City get (Integer id) {
return (City) hibernateTemplate.get(City.class, id);
}
}
而且我PersonDao的會,爲了做到這一點,以保存實例:
public void save (Person person) {
hibernateTemplate.saveOrUpdate (person);
}
一切工作正常,當我嘗試保存有2個不同城市的人,但是當我選擇相同的城市我獲得以下錯誤:
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.project.si.models.common.City#90]
我在其他職位讀過,這是因爲Hibernate的Session是目前知道時獲得屬性編輯叫cityDao.get(id)
前面市,所以我suppo SED使用合併()的地方,但我沒有得到我應該申請這個地方..
爲什麼你有'路徑=「cityOfBirth」'爲市場?這是一個錯字嗎?不應該是'path =「city」'? – limc
你是對的@limc,這是一個錯字,我編輯了我的問題。謝謝 –