自己摸索hibernate的二级缓存的问题先放出hibernate的二级缓存的配置的hibernate.cfg.xml同时还应该在src底下在配置ehcache.xml文件:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://192.168.0.140:3306/wfnms
</property>
<property name="connection.username">wfnms</property>
<property name="connection.password">wfnms</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">Mysql</property>
<property name="show_sql">true</property>
<!--
<mapping resource="com/hibernate/Test.hbm.xml" />
-->
<!-- 开启二级缓存 -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<!-- 设置缓存提供者 -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<mapping resource="com/hibernate/Test.hbm.xml"/>
<!-- 指定缓存的类,和缓存的策略 -->
<class-cache class="com.hibernate.Test" usage="read-only"/>
</session-factory>
</hibernate-configuration>
ehcache.xml文件:
defaultCache标签中的各属性:
maxElementsInMemory:可以缓存的对象的最大数;
eternal:是否是永久缓存;
timeToIdleSeconds:指定缓存多久没有被使用就清理掉;
timeToLiveSeconds:指定缓存的生命长度;
diskPersistent:指定缓存是否被持久化到硬盘中,保存的路径由<diskStore/>指定
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache maxElementsInMemory="10000"
eternal="false" overflowToDisk="true" timeToIdleSeconds="120"
timeToLiveSeconds="120" diskPersistent="false"/>
</ehcache>