您好我已经创建了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