Hibernate缓存~~~~~~

当Session的load()方法试图从数据库中加载一个Customer对象时,Session先判

断缓存中是否已经存在这个Customer对象,如果存在,就不需要再到数据库中检

索。

   Session缓存的两大作用1.减少访问数据库的频率。2.保证缓存中的对象与数

据库中的相关记录保持同步。3.当缓存中的持久化对象之间存在循环关联关系时

,Session会保证不出现访问对象图的死循环,以及由死循环引起的Jvm堆栈溢出

异常。

提示:当Session加载了Customer对象后,会为Customer对象的值类型的属性复

制一份快照。当Session清理缓存时,通过比较Customer对象的当前属性与它的

快照,Session能够判断Customer对象的那些属性发生了变化。


Session 在清理缓存时,按照以下顺序执行SQL语句。
1.按照应用程序调用Session.save()方法的先后顺序,执行所有对实体进行插入

的insert语句。
2.执行所有对实体进行更新的update语句。
3.执行所有对集合进行删除的delete语句。
4.执行所有对集合元素进行删除,更新或者插入的SQL语句。
5.执行所有对集合进行插入的insert语句。
6.按照英语程序调用Session.delete()方法的先后顺序,执行所有对实体进行删

除的delete语句。
在默认情况下,Session会在下面的时间点清楚缓存。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w2512149

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值