1

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

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

4

1 回答 1

0

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

所以第二级只能通过同一个会话工厂的会话工作。

请查看NHibernate 中的一级和二级缓存以获取更多详细信息

于 2012-07-31T17:18:37.403 回答