Hibernate的save方法源码初探
来源:互联网 发布:js 添加style属性 编辑:程序博客网 时间:2024/06/07 09:14
请看进行了如下总结:
一、在session的内部缓存中寻找保存对象,如果找到了,则认为此数据已经保存(曾经执行过insert操作),实体对象已经处于 persistent状态,直接返回。此时即使数据相比之前的状态发生了变化,也将在事务提交时由脏数据检查来判定是否需要执行update操作。
二、如果实体对象实现了lifecycle接口,那么将执行待保存对象的onSave()方法。
三、如果实体对象实现了Validatable接口,那么将会执行相应的validate()方法。
四、如果存在拦截器对象,那么将会执行Interceptor.onSave()方法。
五、构造insert SQL语句完成数据保存。
六、数据保存成功后,设定实体对象的id为插入记录的id。
七、将保存后的实体对象纳入Hibernate的内部缓存(一级缓存)。注意Hibernate不会把保存后的实体对象纳入二级缓存,因为刚刚保存过的实体对象很可能在之后被修改,缓存的频繁更新以及带来的同步问题代价,超出了缓存该对象所带来的收益。
八、如果关联关系映射配置了cascade="save-update"属性,save操作对关联对象级联操作。
上图:
序列图:
- Hibernate的save方法源码初探
- Hibernate Session的save()方法
- Hibernate Session的save()方法
- Hibernate Session的save()方法
- hibernate的save和saveOrUpdate方法
- hibernate-save-插入数据库的方法
- 模拟hibernate save方法的实现过程
- hibernate的save update saveorupdate方法
- Hibernate save方法无法保存的问题
- hibernate save方法失效
- hibernate-save方法详解
- Hibernate中的save方法
- hibernate之简单模拟hibernate的save方法
- 关于hibernate的save方法和persist方法的区别
- hibernate的save()疑惑
- Hibernate执行save方法 注意
- hibernate save方法返回值
- Hibernate常用方法之save
- jdbc复习
- Java 国际化基础知识(一)
- SWT打开对话框
- PES分析
- 使用win32com,直接操作EXCEL
- Hibernate的save方法源码初探
- 钢笔的保养
- 专
- 深入理解iPhone委托模式兼谈iPhone生命周期(转自DEVDIY论坛)
- Android拨号过程函数调用
- 北大acm 1001 Exponentiation
- mysql默认安装目录说明
- android打电话实现分析
- 23种设计模式的形象比喻