快照及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语句