2010-02-17 65 views

回答

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>