안녕하세요, 저는이 두 엔티티 간의 양방향 매핑을 설정했습니다. 이제는 업데이트하는 동안 테이블에서 모든 하위 항목을 제거해야합니다. 그 목록에 새로운 데이터를 저장해야하지만, 여기 목록은 테이블에서 제거하지 않습니다. 엔티티 매핑은 이와 같습니다. 나는이많은 양방향 매핑에서 자식 행 삭제 최대 절전 모드
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();
업데이트 같은 일을 오전
@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>();
EmployeeDepartmentEntity에서
:
내가 이런 식으로 삭제하고있는 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):
사람이 제발 도와 수 @cascade 제거합니다. – user3511026