使用spring的情况下:
注:首先确定hibernate的版本,这里是3.6
配置是在spring的sessionFactory中
1.为hibernate开启二级缓存
<prop key="hibernate.cache.use_second_level_cache">true</prop>
2.指定二级缓存实现类
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
3.建立配置文件ehcache.xml(在hibernate的project/etc目录下),默认放在class-path,可以放到你的src目录下
<?xml version="1.0" encoding="UTF-8"?> <ehcache> <diskStore path="java.io.tmpdir"/> <defaultCache maxElementsInMemory="10000" <!-- 缓存最大数目 --> eternal="false" <!-- 缓存是否持久 --> overflowToDisk="true" <!-- 是否保存到磁盘,当系统当机时--> timeToIdleSeconds="300" <!-- 当缓存闲置n秒后销毁 --> timeToLiveSeconds="180" <!-- 当缓存存活n秒后销毁--> diskPersistent="false" diskExpiryThreadIntervalSeconds= "120"/> </ehcache>
4.在映射文件中指定是否启用缓存,只要添加<cache usage="read-only"/>即可
<hibernate-mapping package="com.ru.ssh.hibernate.entity">
<class name="Person" table="person" catalog="ssh" >
<!-- 对person表进行二级缓存 -->
<cache usage="read-only"/>