Hibernate数据缓存

在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值