2010-11-27 5 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 프로파일 러를 실행하면 NHibernate가 여러 번 쿼리를 실행하는 것을 볼 수 있습니다. 쿼리를 한 번만 실행하면 결과가 캐시되기를 원할 것입니다. 어떤 아이디어? 최대 절전 모드가 전혀 제공하지 않기 때문에

감사합니다,

답변

1

내가 자바 최대 절전 모드에서와 같이 그 같은 희망 MadSeb는 .... 당신은 ... 캐시 제공자에 연결을 추가 할

이 있습니다 캐시 공급자를 링크하는 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>