《深入浅出Hibernate》读书笔记4——脏数据
来源:互联网 发布:如何用ppt制作销售网络 编辑:程序博客网 时间:2024/04/26 04:12
脏数据不是废弃或无用的数据,而是指一个数据对象所携带的信息发生了改变之后的状态。
Transaction tx = session.beginTransaction();
TUser user = (TUser)session.load(TUser.class,new Integer(1));
user.setAge(30);
//此时user 变成脏数据
tx.commit();
TUser user = (TUser)session.load(TUser.class,new Integer(1));
user.setAge(30);
//此时user 变成脏数据
tx.commit();
脏数据检查的策略有两种:
1、数据对象监控:就是采取拦截器
2、数据版本比对:数据提交的时候将提交数据与之前版本比对
Hibernate 采取的是第二种检查策略。
hibernate 判断一个对象是否需要保存的原理:利用属性的 unsaved-value,比如 id 还没填入数据库之前的 unsaved-value 为 null
例子:
我们加载了一个 user 对象,同事也加载了它的 addresses 属性,里面有3个address对象,然后你加了一个address对象,新增加的 address 对象的 id 值跟我们设定的 unsaved-value(null) 相同,hibernate 视其为未保存,并生成 insert 执行
疑问:如果原有对象改变,这样 id 是有的,是不是hibernate 就不进行保存呢?
回答:上面讨论的保存实际上是 insert ,update 大家不用关心,事物提交的时候 hibernate 会自动遍历找出变化的地方,并 update 的
- 《深入浅出Hibernate》读书笔记4——脏数据
- 《深入浅出Hibernate》读书笔记(4)——事务管理
- 《深入浅出Hibernate》读书笔记(4)——事务管理
- 《深入浅出Hibernate》读书笔记(3)——数据缓存
- 《深入浅出Hibernate》读书笔记(3)——数据缓存
- 《深入浅出Hibernate》读书笔记(8)——Hibernate分页
- 《深入浅出Hibernate》读书笔记(8)——Hibernate分页
- 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期
- 《深入浅出Hibernate》读书笔记(2)——实体对象识别
- 《深入浅出Hibernate》读书笔记(5)——持久层操作
- 《深入浅出Hibernate》读书笔记(9)——Session管理
- 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期
- 《深入浅出Hibernate》读书笔记(2)——实体对象识别
- 《深入浅出Hibernate》读书笔记(5)——持久层操作
- 《深入浅出Hibernate》读书笔记(9)——Session管理
- 《深入浅出Hibernate》读书笔记1——属性查询
- 《深入浅出Hibernate》读书笔记2——参数绑定
- 《深入浅出Hibernate》读书笔记3——联合查询
- 破除java神话(一) 垃圾收集解决所有的内存问题
- jsp生成静态html页思路【1】
- Hibernate学习笔记1 -- VO与PO
- Application footprint reduce study.
- BPEL之贷款审批案例(1)
- 《深入浅出Hibernate》读书笔记4——脏数据
- 9大怪异浴室高科技产品排行榜
- 中国程序员联盟群特种兵选拔考试题目--C
- 16进制和字符串之间转换
- 走上开放之路: .NET 开发人员的 J2EE 基础(.NET 程序员转向 J2EE 的路标图)
- 挺不错的验证码(代码不是自己写的)
- 中国程序员联盟群特种兵选拔考试题目--C++
- SCJP一些笔记
- Google breakpad usage analysis