Session的缓存

 在Session接口的实现类SessionImpl中定义了一系列的java集合,这些集合构成了Session的缓存.

一.Session缓存作用:
1.减少访问数据库的频率.
        应用程序从内存中读取持久化对象的速度比从数据库中查询快得多.
2.保证缓存中的对象与数据库中的记录保持同步.
        当缓存中持久化对象的状态发生变化,Session并不会立即执行相关的SQL语句,这使得Session能把几条相关的SQL语句合并为一条SQL语句,以减少访问数据库的频率.

二.Session清理缓存
Session 在清理缓存时,会把缓存中所有的持久化对象和数据库记录比较,如果持久化对象改变则执行SQL update来更新数据库记录.
Session 清理缓存时间点:
Session 的setFlushMode()方法用于设定清理缓存的时间点:session.setFlushMode(FlushMode.AUTO);
FlushMode.AUTO 为默认方式
一共三种模式
模式               Session的查询方法                Session的commit()方法         Session的flush()方法
FlushMode.AUTO      清理                             清理                         清理  
FlushMode.COMMIT    不清理                           清理                         清理
FlushMode.NEVER     不清理                           不清理                       清理 
备注:Session清理缓存例外,如果对象使用native生成器生成OID,那么当Session的save()保存该对象时,会立即向数据库插入该实体的insert语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值