我们可以通过使用Update()遍历Detached对象的状态为Persistent状态 或者SaveorUpdate()等。这意味着nHibernate以某种方式跟踪Detached对象。我首先想到它可能会将分离的对象保存在内存中。但是当我遇到声明时,我很难过:
您可以在处理完每个对象后立即将其驱逐出去 (在迭代查询结果时), 从而防止内存 疲惫。 参考:NHibernate in Action
提供:Evict()用于从Persistent遍历到Detached对象。
在上面的陈述中:“从而防止内存耗尽。”给出了一个概念,好像 分离的对象不会保留在内存中。还有什么地方呢?
答案 0 :(得分:0)
是的,Evict
从第一级缓存中删除实体。
"独立式"只是意味着该对象与会话无关。它不在任何会话的第一级缓存中。
SaveOrUpdate
将对象添加到第一级缓存,并将其安排在下一个Flush
上插入或更新。