【问题标题】:NHibernate disable all-delete-orphanNHibernate 禁用所有删除孤儿
【发布时间】:2011-05-18 15:26:25
【问题描述】:

应用程序使用 NHibernate。 我有包含一组对象 B 的对象 A。 我的配置文件中有 cascade="all-delete-orphan" 。 当我对 A 对象进行更改然后保存时,对象 B 也在保存。 如何防止保存 B ?是否可以暂时禁用级联? 问候 马辛

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    你可以考虑使用 IStatlessSession

    使用无状态执行的操作 会话永远不会级联到 关联的实例。收藏品是 被无状态会话忽略。 通过无状态执行的操作 session 绕过 Hibernate 的事件模型 和拦截器。无状态会话 容易受到数据别名的影响 影响,由于缺乏 一级缓存。无状态会话 是一个较低级别的抽象,很多 更接近底层 ADO。

    【讨论】:

    • 在这种情况下,IStatlessSession 帮助了我。谢谢。
    • 问题是当对象 A 必须设置:B 和 C。B 改变而 C 没有改变。当我保存 A 时,我想保存 A 和 B 而不是更新 C。可以吗?
    【解决方案2】:

    为防止级联保存,您必须从映射中删除该属性。由于映射内置在会话工厂中,因此没有简单的方法可以暂时禁用级联。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 2012-10-22
      • 1970-01-01
      • 2011-02-09
      • 2012-02-07
      • 1970-01-01
      相关资源
      最近更新 更多