今天特地的回顾了一下hibernate 的二级缓存, 我平常用到的是两种
1: ehcache
1.1 首先配置 ehcache.xml 当然也可以默认 也可以自定义
表示该类要用缓存 另 可以在 hibernate.cfg.xml 添加
2 如果 你用的是 org.hibernate.cache.HashtableCacheProvider
就只需要在需要用的hibernate映射文件中 添加 当然这个也可以跟 上面的一样可以统一在配置文件中管理起来 。
1: ehcache
1.1 首先配置 ehcache.xml 当然也可以默认 也可以自定义
- "Student"
- maxElementsInMemory="80" eternal="false" overflowToDisk="false"
- timeToIdleSeconds="80" timeToLiveSeconds="80" />
说明: name 就是自定义的名称
maxElementsInMemory 缓存存储的总记录量
eternal 缓存是否永远不销毁
overflowToDisk 当缓存到达总数后是否覆盖原来的
timeToIdleSeconds 当缓存空闲时间超过该值 则缓存自动销毁 感觉上没多大用处 可能是测试的时候 缓存量的问题
timeToLiveSeconds 缓存创建之后,到达该缓存自动销毁 同上
1.2 让后在用到的 hibernate映射文件中 添加
-
- <class name="com.eagle.model.cache.Student" table="t_student" >
- [u]"read-write" region="Student" />[/u]
- ………省略 …………… class>
-
[u][/u]
………省略 ……………
表示该类要用缓存 另 可以在 hibernate.cfg.xml 添加
- <class-cache class="com.eagle.model.cache.Student"
- usage="read-write" region="Student" />
可以在hibernate.cfg.xml 统一管理那里类用到了缓存
说明 region 指定使用哪个缓存机制。这个在ehcache 中所配置的
usage 这个是必须的 缓存的策略: transactional、 read-write、 nonstrict-read-write或 read-only。
1.3 在hibernate.cfg.xml 数据连接池 别忘记加上
- "hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider
-
- "hibernate.cache.use_second_level_cache">true
org.hibernate.cache.EhCacheProvidertrue
2 如果 你用的是 org.hibernate.cache.HashtableCacheProvider
就只需要在需要用的hibernate映射文件中 添加 当然这个也可以跟 上面的一样可以统一在配置文件中管理起来 。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22893636/viewspace-630943/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22893636/viewspace-630943/