Hibernate 【三】 一级缓存
本文只供个人复习阅读,如有错误还望大大指点
一级缓存
缓存的作用是为了减少sql语句发送,接上文说道session是一个一级缓存而三大状态就和这个缓存有关,生命周期和session相同,贴一下使用session查询对象时调试的信息
entitiesByKey,key是持久化缓存对象,value是快照对象
对象持久化时,会保存对象快照,当你操作持久化对象后,当session.flush()之后,会比对快照对象和持久化对象,如果不同,则发送更新语句。
session.close()可以清空缓存
session.evict()删除缓存的单个对象
session.flush()同步缓存和数据库
二级缓存
二级缓存的单位是sessionFactory,初始化时会加载。
在第一节配置中曾经有个二级缓存配置,可以用自带的,也可以用第三方的插件。
二级缓存存在的目的和一级缓存一样,只不过缓存级别从线程,变为全局,生命周期也更长了。
这东西很复杂,所以我了解为主,贴个别人的文章,以后用到我也去看。
https://www.baidu.com/link?url=2srKQ58jsqhHqmmzT9i42xOohjI6EKE0l3Sf3cFhOnJOzZ_hkIHtqXLPm3-h4N0aIJVhob5KNHUViOp1UlZxho0nVK6kdwEuFapCxfb0Tzi&wd=&eqid=d73447540004572c000000065ccab127