Hibernate数据缓存

来源:互联网 发布:淘宝店怎么充值话费 编辑:程序博客网 时间:2024/04/29 20:38
在Hibernate中,缓存将在以下情况中发挥作用:
1.通过id[主键]加载数据的时候
2.延迟加载
 
一级缓存:
又称内部缓存,保存了与当前session相关联的数据对象,伴随Session实例的创建而创建,消亡而消亡。因此又称此缓存为Session level cache。
一级缓存正常情况下又Hibernate自动维护,如果需要手动干预,可以通过以下方法完成。
1.Session.evict
   将某个特定对象从内部缓存中清除。
2.Sessin.clear
   清空内部缓存
 
二级缓存:
又称为SessionFactory Level Cache.
        对什么样的数据使用二级缓存?对所有数据都进行缓存是最简单的办法,也是最常用的办法。但是某些情况下,反而会影响性能,比如电话费查询系统,如果实行缓存,内存会被几乎不可能再被重用的数据充斥,导致性能下降。
如果数据满足以下条件,可以将其纳入缓存管理:
1.数据不会被第三方应用修改。
2.data size在可以接受的范围之内
3.数据更新频率较低
4.同一数据可能会被系统频繁引用
5.非关键数据
Hibernate本身并没提供二级缓存的产品化实现(只提供了一个基于HashTable的简单缓存以供调试),可以使用第三方缓存来实现。默认采用EHCache作为二级缓存实现。
        EHCache org.ehcache.hibernate.Provider
原创粉丝点击