0
我有一个NHibernate对象,它有一个子集合映射为AsBag,反向,Cascade.AllDeleteOrphan。NHibernate坚持以前的'删除'对象
我有我需要重新保留已删除对象的场景。
删除父对象是没问题的..父母和孩子从数据库中删除。
问题是,我需要重新保存/保留已删除的对象。如果我尝试调用SaveUpdate,则会得到StaleObjectStateException,因为对于父对象和子对象,Id字段仍设置为非零值。
当然,我可以强制Id为零父母删除,但然后迫使孩子们的ID为零看起来很麻烦。
有没有更好的策略来处理?
非常感谢
感谢您的快速反应,但在这种情况下,它将无法正常工作....我真的需要一种机制,我可以删除并重新保留一个对象图。 我们所做的是: a。用一个方法创建一个接口ResetId,它被添加到每个像这样的对象。 b。挂钩到PostCommitDeleteEventListeners事件中,如果对象实现了我们称之为ResetId的接口。 您是否预见到了这种方法的任何问题? 非常感谢 –
期望的最终结果是什么?将删除的图像保存为新品牌? – HackedByChinese
在这种情况下,是的,当它被删除时,可能需要重新保留;这种类型的“交易”也会涉及多个会话(它位于Web应用程序中)。顺便说一下,这不是'长时间运行'的交易。 –