本身摸索hibernate的二级缓存的问题先放出hibernate的二级缓存的配置的hibernate.cfg.xml同时还应该在src底下在配置ehcache.xml文件: java
<?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标签中的各属性: mysql
maxElementsInMemory:能够缓存的对象的最大数; sql
eternal:是不是永久缓存; 缓存
timeToIdleSeconds:指定缓存多久没有被使用就清理掉; session
timeToLiveSeconds:指定缓存的生命长度; app
diskPersistent:指定缓存是否被持久化到硬盘中,保存的路径由<diskStore/>指定 eclipse
<ehcache> <diskStore path="java.io.tmpdir"/> <defaultCache maxElementsInMemory="10000" eternal="false" overflowToDisk="true" timeToIdleSeconds="120" timeToLiveSeconds="120" diskPersistent="false"/> </ehcache>