session常用方法:
get方法 在get时发出sql语句 此时对象为持久态 在缓存中
load方法 在load时候产生代理对象 但是当访问属性时才发出sql语句 (延迟加载) 此时对象为持久态 在缓存中
evict方法 清除缓存中的内存对象 被evict的对象 下次请求相同oid的对象时 会重新发出sql语句
load方式加载的对象 被evict后 已经与当前对象失联 不能再操作其属性 否则报错could not initialize proxy - no Session
get方式加载的对象 因为在get时候就已经发出sql语句 所以可以操作其普通属性
也就是说evict的对象已经脱离了session处于游离状态
clear方法 清除session缓存中所有的对象 也就是说所有的对象都是游离状态
merge方法 产生一个相同oid的对象 持久化对象 因为有缓存就是自己 瞬时态对象就是复制一个就不是自己因为没有缓存
如果是离线状态不能merge
flush方法 将session缓存中的对象 发出sql语句到数据库
save方法 插入一条记录到数据库 有返回值 就是id 因为调用方法就返回id 所以马上会生成sql语句
persist方法 不会立即插入 因为不用生成id返回 等flush后才插入
refresh方法 重新发出一个sql语句去刷新对象