Hibernate 缓存策略

本文介绍了Hibernate的一级缓存和二级缓存。一级缓存作为Session级别的缓存,自动管理,不可关闭;二级缓存则实现了跨Session的数据共享,需要通过配置实现。文章详细解释了这两种缓存的工作原理和配置步骤。

这里写图片描述
Hibernate 一级缓存
1.Hibernate一级缓存又称为”Session缓存”,”会话级缓存”。
2.通过Session在数据库查询实体时会把实体在内存中存储起来,下一次查询同一个实体时将不再从数据库获取,而从内存中获取,每个实体都有一个唯一的OID,这就是缓存。
3.一级缓存的生命周期和Session相同,Session销毁,它也销毁。
4.一级缓存中的数据的可适用范围在当前的session会话之内,若当前session改变,则不再是从缓存中获取数据。

Hibernate一级缓存API
一级缓存无法取消,用两个方法管理
evict():将某个对象从session的缓存中清除。
clear():用于在一级缓存中的所有对象全部清除。

Hibernate二级缓存(sessionFactory缓存)
解决问题:
数据在一个session中缓存,我们希望在其他session中能直接使用,而不用再次缓存。二级缓存是在每个session中都共用的缓存。

二级缓存配置步骤
添加二级缓存对应的jar包。
在Hibernate的配置文件中添加Provider类描述。
添加二级缓存的属性配置文件ehcache.xml。
在需要被缓存的表所对应的映射文件中添加<cache/>标签

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值