快速业务通道

Hibernate中的Cache管理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
时间戳机制维护读写提交事务隔离级别。可以对读/写比例高,很少更新 的数据采用该策略。

3:非严格读写(notstrict-read-write)不保证Cache和数据库之间的数据库的一致性。使用此策略 时,应该设置足够的缓存过期时间,否则可能从缓存中读出脏数据。当一些数据极少改变,并且当这些数 据和数据库有一部份不量影响不大时,可以使用此策略。

4:只读(read-only)当确保数据永不改变时,可以使用此策略。

我们确定了Hibernate Cache策略后,就要挑选一个高效的Cache提供器,它将作为插件被Hibernate调 用。Hibernate允许使用下述几种缓存插件:EhCache:可以在JVM中作为一个简单进程范围内的缓存,它 可以把缓存的数据放入内存或磁盘,并支持Hibernate中可选用的查询缓存。

OpenSymphony OSCache:和EhCache相似,并且提供了丰富的缓存过期策略。

◆SwarmCache:可作为集群范围的缓存,但不支持查询缓存。

◆JBossCache:可作为集群范围的缓冲,但不支持查询缓存。

在Hibernate中使用EhCache

EhCache是一个纯JAVA程序,可以在Hibernate中作为一个插件引入。在Hibernate中使用EhCache需要 在Hibernate的配置文件中设置如下:

<propery name="hibernate.cache.provider_class">     org.hibernate.cache.EhCacheProvider </property> <ehcache>     <diskStore path="c:\\cache"/>    //设置cache.data文件存放位置     <defaultCache            maxElementsInMemory="10000" //缓存中允许创建的最大 对象数            eternal="false"    //缓存中对象是否为永久的             timeToIdleSeconds="120"//缓存数据钝化时间(即对象在它过期前的空闲时间)             timeToLiveSeconds="120"//缓存数据生存时间(即对象在它过期前的生存时间)             overflowToDisk="true"     />     <cache name="Student"     //用户自定义的Cache配置            maxElementsInMemory="10000"             eternal="false"            timeToIdleSeconds="300"             timeToLiveSeconds="600"            overflowToDisk="true"                   /> </ehcache>

此外我们还需要在持久化类的映射文件中进行配置。例如,Group(班级)和Student(学生)是一对 多的关系,它们对应的数据表分别是t_group和t_student.现在要把Student类的数据进行二级缓存,这需 要在二个映射文件中都对二级缓存进行配置。

在Group.hbm.xml中如下,在其<set></set>中添加

<cache usage="read-write"/><!——集合中的数据被缓存——>上述文件虽然在 <set>标记中设置了<cache usage="read-write"/>,但Hibernate只是把Group相关的 Student的主键ID加入到缓存中,如果希望把整个Student的散装属性都加入到二级缓存中,还需要在 Student.hbm.xml文件的<class>标记中添加<cache>子标记。如下:

<class name="Student" table="t_student">     <cache usage="read- write" /><!--cache标记需跟在class标记后--> </class>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号