Spring+Hibernate 快取不起作用
阿新 • • 發佈:2018-12-31
最近做的兩個專案其中一個需求測試一下快取機制下的執行效率,結果配了半天,老是不起作用,而另一套同樣機制下的應用,確起作用查了兩個系統的配置也一樣,下面是我ehcache.xml 檔案的資訊
<?xml version="1.0" encoding="UTF-8"?> <ehcache> <diskStore path="java.io.tmpdir" /> <defaultCache maxElementsInMemory="999999999" eternal="true" timeToIdleSeconds="10000" timeToLiveSeconds="10000" overflowToDisk="true" /> </ehcache>
下面是部份applicationContext.xml
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref ="gzMobileSource" /> <property name="lobHandler" ref ="oracleLobHandler" /> <property name="mappingDirectoryLocations"> <list> <value>classpath:/com/kmi/expert/model</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.max_fetch_depth">0</prop> <prop key="hibernate.generate_statistics">true</prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="cglib.use_reflection_optimizer">false</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop> <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop> </props> </property> </bean>
ehcache.xml檔案放置在src目錄中,編譯後輸出在WEB-INF/classes/下面。持久類的對映如下
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping package="com.kmi.expert.model"> <class name="Displaytype" table="DISPLAYTYPE"> <cache usage="read-only"/> <id name="id" type="integer" column="DISPLAYTYPEID"> <generator class="org.hibernate.id.Assigned" /> </id> 中間部份略... </class> </hibernate-mapping>
我對快取是否起作用的判斷是,通過執行相同的操作,檢查輸出的SQL,發現每次執行都輸出了相同的SQL,條數也一樣。不知道那位達人能指點一二。