Session中的核心方法梳理
1、save方法
这个方法表示将一个对象保存到数据库中,可以将一个不含OID的new出来的临时对象转换为一个处于Session缓存中具有OID的持久化对象。
需要注意的是:在save方法前设置OID是无效的但是也不会报错,在save方法之后设置OID程序会抛出异常,因为持久化之后的对象的OID是不可更改的,因为对象的OID此时和数据库中的一条记录对应。
结论总结
- 临时对象变持久对象
- 给对象分配id,这个id叫oid, 它和数据库的记录id对应一致
- 执行save方法时会发起一条insert语句, 但要等到事务提交时才会作用到数据库
- save方法前设置id无效, save方法后设置id报异常,持久对象的id不准修改
2、persist方法
这个方法基本个save方法差不多,唯一的区别是,在这个方法之前也不可以设置对象的OID,否则不会执行插入操作,而是会抛出异常。
3、get/load方法
get这个方法是从数据库中获取一条数据记录转成对象放到Session缓存中,load方法也是这个功能。二者有着明显的区别。