您的位置:首页 > 其它

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语句
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: