【问题标题】:Stateless NHibernate for querying用于查询的无状态 NHibernate
【发布时间】:2010-04-14 15:56:28
【问题描述】:

我们有一个通过后台进程更新的数据库。我们使用 NHibernate 来查询数据以显示在 Web UI 上,因此我们不需要更改跟踪或延迟加载。

如果我们将所有映射都标记为 mutable="false",这是否与使用无状态会话相同?

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    不,不一样。事实上,它与它完全无关(即您可以在无状态会话中修改实体)。

    StatelessSession 不跟踪实体,当您不需要有状态会话提供的功能时,这会显着提高性能(内存使用和执行时间)。

    特别是:

    • 没有延迟加载
    • 没有缓存
    • 没有级联
    • 所有更新都必须是明确的(插入/更新/删除)

    【讨论】:

    • 但是标记 mutable="false" 是否意味着实体不会被跟踪?
    • 不,它没有。这只意味着它一旦持久就不会更新,但这只是一个标志;所有的管道都还在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2018-04-16
    • 1970-01-01
    • 2012-11-22
    • 2010-12-20
    • 2014-09-18
    相关资源
    最近更新 更多