Hibernate 类型映射 cascade取值 session 缓存 hibernate中对象的三态

本文详细解析Hibernate中Java对象的三种状态及session缓存机制,阐述了对象持久化过程中的缓存作用,包括减少数据库访问频率和保证缓存对象与数据库同步的重要性。同时,介绍了session缓存清理时机以及三种状态之间的转换,旨在提升应用性能。

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

1 java类型 hibernate类型 sql类型的对应关系

2 cascade取值

3  session的缓存

当session 的save()方法持久化一个customer对象时,customer对象被加入到session的缓存中,以后即使应用程序中的引用变量不再引用customer对象,只要session的缓存还没有清空,customer对象仍然处于生命周期中。

当session的load方法试图从数据库中加载一个customer对象时,session 先判断缓存中是否已经存在这个customer对象,如果存在,就不需要再到数据库中检索。

4 session缓存的作用

(1) 减少数据库访问频率。应用程序从内存中读取持久化对象的速度显然比盗数据库中查询数据的速度快多了,因此session的缓存可以提高数据访问的性能。

(2)保证缓存中的对象与数据库中的相关记录保持同步。当缓存中持久化对象的状态发生了变化,session不会立即执行相关的SQL语句,这使得session能够把几条相关的SQL语句合并为一句SQL语句,以便减少访问数据库的次数,从而提高应用程序的性能。

5 session清理缓存的时间点

(1)当应用程序调用commit()方法的时候,commit方法先清理缓存,再想数据库提交事务

(2) 当应用程序显式调用session的flush()方法的时候

6 hibernate中Java对象的三种状态




























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值