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

posted @ 2019-05-02 17:10  haon  阅读(99)  评论(0编辑  收藏  举报