【Hibernate学习笔记】Session清空缓存与清理缓存

本文深入探讨了Session缓存的工作原理及其清理机制,包括如何通过commit()、list()或iterate()方法以及手动调用flush()方法来清空缓存,确保持久化对象的最新状态与数据库保持一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 清空缓存

    当调用session.evict(customer); 或者session.clear(); 或者session.close()方法时,Session的缓存被清空。


2. 清理缓存

    Session具有一个缓存,位于缓存中的对象处于持久化状态,它和数据库中的相关记录对应,Session能够在某些时间点,按照缓存中持久化对象的属性变化来同步更新数据库,这一过程被称为清理缓存。

    

    在默认情况下,Session会在下面的时间点清理缓存。

  •  当应用程序调用org.hibernate.Transaction的commit()方法的时候,commit()方法先清理缓存,然后在向数据库提交事务;
  •  当应用程序调用Session的list()或者iterate()时(【注】get()和load()方法不行),如果缓存中持久化对象的属性发生了变化,就会先清理缓存,以保证查询结果能能反映持久化对象的最新状态;
  •  当应用程序显式调用Session的flush()方法的时候。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值