2010-11-27 54 views
0

我想有这个缓存的查询NHibernate的:NHibernate的缓存查询

Configuration configurationEntry = session.CreateQuery("from Configuration configurationEntry where configurationEntry.Name = 'DefaultVendorId'").SetCacheable(true).UniqueResult<Configuration>(); 

我NHibernate的配置文件中有

<property name="cache.use_query_cache">true</property> 

但是,当我运行NHibernate profiler时,我发现NHibernate多次执行查询..我显然希望查询只执行一次,并且结果缓存。有任何想法吗 ?

问候, MadSeb

回答

1

我希望它等同于Java的休眠....你有一个链接添加到您的缓存提供商......因为Hibernate的提供无...

这是连接缓存提供者的Java-Hibernate配置的一部分。

  <prop key="hibernate.cache">true</prop> 
      <prop key="hibernate.cache.use_second_level_cache">true</prop> 
      <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory</prop> 
      <prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>