您好我已經創建了employeeentity和employeedepartment實體,在這裏我已經建立了這兩個實體之間的雙向映射。現在的問題是更新時,我需要從表中刪除所有的孩子,我需要將新數據保存到該列表中,但是這裏的列表並沒有從表格中刪除,我的實體映射就像這樣。休眠刪除子行多對一雙向映射
在EmployeeDepartmentEntity
@ManyToOne
@JoinColumn(name = "employeeid")
private EmployeeEntity employeeentity;
**In EmployeeEntity**
@OneToMany(mappedBy = "employeeentity")
@OrderBy("id")
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.remove})
private List<EmployeeDeparment> empdep = new ArrayList<EmployeeDeparment>();
我做這樣的
Session session = HibernateUtil.getSessionFactory().openSession();
EmployeeEntity editemployee = (EmployeeEntity) session.get(EmployeeEntity.class, 95);
List<EmployeeDeparment> list = editemployee.getEmpdep();
Iterator<EmployeeDeparment> ite = list.iterator();
while (ite.hasNext()) {
EmployeeDeparment value = ite.next();
ite.remove();
}
session.saveOrUpdate(editemployee);
session.beginTransaction().commit();
更新:
如果我在employeeEntity。如果我刪除這樣只使用saveorupdate
for(EmployeeDeparment deparment:list){
session.delete(deparment);
}
我得到例外。
Exception in thread "main" org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations):
誰能幫我請。 – user3511026