我想知道如何使NHibernate在第二级缓存中存储我的查询达指定时间 我只看到实体缓存。
感谢您的回复。
答案 0 :(得分:1)
默认情况下不启用查询缓存。要在hibernate.cfg.xml中启用它:
<add key="hibernate.cache.use_query_cache" value="true" />
您应该为查询指定缓存区域。如果未指定,则该区域将为“NHibernate.Cache.StandardQueryCache”。
Session.CreateCriteria<User>()
.SetCacheRegion("UserQuery")
.List();
对于syscache,在app.config中配置了缓存区域:
<configuration>
<configSections>
<section name="syscache" type="NHibernate.Caches.SysCache.SysCacheSectionHandler,NHibernate.Caches.SysCache" />
</configSections>
<syscache>
<cache region="User" expiration="300" priority="3" />
<cache region="UserQuery" expiration="60" priority="3" />
</syscache>
</configuration>