NHibernate的二级缓存如何与连接提供程序一起使用?

时间:2012-07-31 16:56:17

标签: nhibernate

据我所知,NHibernate的二级缓存在SessionFactory级别工作。我在我的NHibernate配置中使用连接提供程序来处理我的多租户环境。我想知道二级缓存如何与连接提供程序进行交互。也就是说,它是否智能地为每个单独的连接字符串维护缓存,或者所有连接是否共享相同的缓存?

显然,共享相同的缓存是一个巨大的禁忌,因为相同的查询将根据它所访问的数据库返回不同的结果。

1 个答案:

答案 0 :(得分:0)

  

二级缓存的生命周期与会话工厂相关联,而不是与单个会话相关联。一旦实体由其唯一ID加载并且第二级缓存处于活动状态,该实体可用于(同一会话工厂的)所有其他会话。

因此,第二级仅适用于同一会话工厂的会话。

请查看First and Second Level caching in NHibernate了解详情