一尘不染

org.hibernate.ObjectDeletedException:删除的对象将通过级联重新保存(从关联中删除删除的对象):

hibernate

我收到上述错误“
org.hibernate.ObjectDeletedException:被删除的对象将通过级联重新保存(从关联中删除已删除的对象):”。有人可以帮我这个问题是什么,应该怎么解决?

谢谢。


阅读 1220

收藏
2020-06-20

共1个答案

一尘不染

没有映射结束代码会有点困难…这通常是由于要删除与集合关联的对象引起的。
您必须从拥有的收藏夹中删除对象,然后再删除对象

parentObject.collection.remove(objToDelete);
session.delete(objToDelete);
session.save(parentObject);

但是您可以通过这种方式使用deleteOrphan映射映射集合来避免这种情况

class ParentObject {
  @OneToMany(orphanRemoval=true)
  private List<ChildObject> collection;
}

和代码看起来像

parentObject.collection.remove(objToDelete);
session.save(parentObject);

您不再需要删除对象,因为在保存parentObject时,它会被Hibernate自动删除。

希望可以帮到您

2020-06-20