5
在我的查詢(查找)獲得緩存會話關閉後,在新會話中,在我通過隨機寫入Sql查詢更改數據庫後,hibernate會逐出所有內容,我該如何阻止發生?我正在研究爲很少改變的事情制定政策。ehcache hibernate第二級緩存,hibernate自動排除
INFO Executing [namedSqlQuery=dao.web_login, objs=[user1]]
DEBUG org.springframework.orm.hibernate3.SessionFactoryUtils user1- Opening Hibernate Session
DEBUG org.hibernate.impl.SessionImpl user1 - opened session at timestamp: 5511432318976000
DEBUG org.hibernate.impl.SessionFactoryImpl user1- evicting second-level cache: USERS_LOOKUP
DEBUG org.hibernate.impl.SessionFactoryImpl user1- evicting second-level cache: COUNTRY_LOOKUP
ecache.xml
<cache name="query.oneHourPolicy"
maxElementsInMemory="10000"
eternal="false"
timeToLiveSeconds="3600"
diskPersistent="true"
overflowToDisk="true"/>
彈簧hibernate配置
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>
您的CacheMode設置爲REFRESH(即CacheMode.REFRESH) – Santosh
不,我寫了一個junit類來在同一個會話中運行相同的查詢,但沒有隨機SQL,它從20秒到1秒纔得到答覆 – Rodriguez
JUnit log 0st time - 20134 ms 1st time - 207 ms第2次 - 183 ms第3次 - 179 ms第4次 - 185 ms運行隨機sql查詢第5次 - 20043 ms第6次 - 182 ms第7次 - 181 ms第8次 - 177 ms第9次 - 179 ms – Rodriguez