for (Userrole userrole : olduserrolelist) {
userrole.getRole().getUserroles().remove(userrole);
userrole.getUser().getUserroles().remove(userrole);
userrole.setRole(null);
userrole.setUser(null);
userroleDAO.delete(userrole);
}
order = (Order) session.get(Order.
class
,
2
);
order.getCustormer().getOrders().remove(order);
order.setCustormer(
null
);
session.delete(order);
order是多的那一方,如果要删除一个order对象,直接调用session.delete()方法肯定就会报开头那个对象
为了解决这个问题,就可以先得到与该order对象对应的一的那一方(即customer对象),然后先将该order对象从customer对象中删除,并且将该order对象的customer对象设置为null,这样再执行删除时就不会出现那个异常了。
for (Userrole userrole : olduserrolelist) {
userrole.getRole().getUserroles().remove(userrole);
userrole.getUser().getUserroles().remove(userrole);
userrole.setRole(null);
userrole.setUser(null);
userroleDAO.delete(userrole);
}
order = (Order) session.get(Order.
class
,
2
);
order.getCustormer().getOrders().remove(order);
order.setCustormer(
null
);
session.delete(order);