hibernate一级缓存--即session级别缓存.docx
2017-11-21 22:10
134 查看
三图的说明:
快照及update.commit说明
第一次 session.get()方法因为session中还无此id记录,所以会发一条select语句将记录查出来封装成对象并保存两份,一份放入session缓存中,一份做为快照
第二次 session.get()因为此id对象已存在于session中会直接从session中拿,而不用再发sql去数据库查,
在执行session.update()时会先对比session中的对象与快照中的对象是否完全一致,不一致commit后才会发送 update sql到数据库进行更新
因此如果是非持久化对象 seddion.update()会先变为持久化对象,然后commit会发送update sql更新到数据库,如果是从数据库查询出来的对象,如果没有修改则 session.update() commit也不会发送sql语句
快照及update.commit说明
第一次 session.get()方法因为session中还无此id记录,所以会发一条select语句将记录查出来封装成对象并保存两份,一份放入session缓存中,一份做为快照
第二次 session.get()因为此id对象已存在于session中会直接从session中拿,而不用再发sql去数据库查,
在执行session.update()时会先对比session中的对象与快照中的对象是否完全一致,不一致commit后才会发送 update sql到数据库进行更新
因此如果是非持久化对象 seddion.update()会先变为持久化对象,然后commit会发送update sql更新到数据库,如果是从数据库查询出来的对象,如果没有修改则 session.update() commit也不会发送sql语句
相关文章推荐
- Hibernate 一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题
- [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别
- 4-7. Hibernate_Session 概述&缓存(Hibernate 一级缓存)&Session 核心方法
- Hibernate复习笔记(3)——Session缓存(Hibernate一级缓存)详解
- Hibernate持久化对象状态 Session缓存(一级缓存),快照 操纵持久化对象的方法
- hibernate中session缓存(一级缓存)
- Hibernate中对象状态以及一级缓存(session的缓存)
- hibernate笔记--缓存机制之 一级缓存(session缓存)
- hibernate一级缓存(session缓存)
- 理解hibernate的session缓存机制(一级缓存和二级缓存)
- hibernate 一级缓存(Session缓存)和持久化对象的四种状态
- hibernate04 懒加载、抓取策略、二者结合、session详解、一级缓存、二级缓存、查询缓存
- Hibernate一级缓存和二级缓存详解
- Hibernate 一级缓存和二级缓存
- hibernate中的一级缓存和二级缓存
- Hibernate学习笔记:理解一级缓存和session清理
- hibernate一级缓存和二级缓存的区别
- Java - 谈一谈Hibernate的一级缓存、二级缓存和查询缓存。
- 关于Hibernate session 的缓存
- Hibernate一级缓存和二级缓存综合