【发布时间】:2011-05-18 15:26:25
【问题描述】:
应用程序使用 NHibernate。 我有包含一组对象 B 的对象 A。 我的配置文件中有 cascade="all-delete-orphan" 。 当我对 A 对象进行更改然后保存时,对象 B 也在保存。 如何防止保存 B ?是否可以暂时禁用级联? 问候 马辛
【问题讨论】:
标签: nhibernate
应用程序使用 NHibernate。 我有包含一组对象 B 的对象 A。 我的配置文件中有 cascade="all-delete-orphan" 。 当我对 A 对象进行更改然后保存时,对象 B 也在保存。 如何防止保存 B ?是否可以暂时禁用级联? 问候 马辛
【问题讨论】:
标签: nhibernate
你可以考虑使用 IStatlessSession
使用无状态执行的操作 会话永远不会级联到 关联的实例。收藏品是 被无状态会话忽略。 通过无状态执行的操作 session 绕过 Hibernate 的事件模型 和拦截器。无状态会话 容易受到数据别名的影响 影响,由于缺乏 一级缓存。无状态会话 是一个较低级别的抽象,很多 更接近底层 ADO。
【讨论】:
为防止级联保存,您必须从映射中删除该属性。由于映射内置在会话工厂中,因此没有简单的方法可以暂时禁用级联。
【讨论】: