在NHibernate第一级缓存中管理实体

时间:2010-09-22 08:53:34

标签: nhibernate persistence first-level-cache

在线程/会话生命周期内管理第一级缓存中的持久实体的正确方法是什么?实际上,每个线程(会话)只有一个或两个持久化实例应该始终存在,以便在保存之前从其他(瞬态)实体引用它们。

因为我需要每隔一段时间清除一次会话缓存(因为否则它会被填满并且非常缓慢),我不确定是 - 我应该:

  1. 从会话中删除所有实体,除了我需要的实体?
  2. 清除整个会话,并重新加载必要的实体?
  3. 创建新会话并重新加载必要的实体?

1 个答案:

答案 0 :(得分:2)

我认为您应关闭之前的会话并打开新的会话。如果要缓存的对象对于每个会话的加载很重,则应使用二级缓存。