【hibernate merge】session1.merge(T entity)方法的含义和update方法的区别
2016-07-22 11:39
232 查看
注意:
MERGE语句是SQL语句的一种。在SQL Server、Oracle数据库中可用,MySQL、PostgreSQL中不可用。
1》session1.merge(T entity) 合并实体的方法。
2》merge的作用是:新new一个对象,如果该对象设置了ID,则这个对象就当作游离态处理:
当ID在数据库中不能找到时,用update的话肯定会报异常,然而用merge的话,就会insert。
当ID在数据库中能找到的时候,update与merge的执行效果都是更新数据,发出update语句;
如果没有设置ID的话,则这个对象就当作瞬态处理:
用update的话,由于没有ID,所以会报异常,merge此时则会保存数据,根据ID生产策略生成一条数据;
3》作用类似与saveOrUpdate()方法,作用基本一致,不过略有区别。
4》与[b]saveOrUpdate()方法的区别是:[/b]
[b] 1.saveOrUpdate()是完全更新数据[/b]
[b] 2.merge()方法在更新数据的时候,例如数据库中本条数据的name这个字段是‘李四’,而新的要合并的数据中name字段是null,那数据库中name字段的数据是不被替换的,依旧是'李四',而其他字段被替换。[/b]
MERGE语句是SQL语句的一种。在SQL Server、Oracle数据库中可用,MySQL、PostgreSQL中不可用。
1》session1.merge(T entity) 合并实体的方法。
2》merge的作用是:新new一个对象,如果该对象设置了ID,则这个对象就当作游离态处理:
当ID在数据库中不能找到时,用update的话肯定会报异常,然而用merge的话,就会insert。
当ID在数据库中能找到的时候,update与merge的执行效果都是更新数据,发出update语句;
如果没有设置ID的话,则这个对象就当作瞬态处理:
用update的话,由于没有ID,所以会报异常,merge此时则会保存数据,根据ID生产策略生成一条数据;
3》作用类似与saveOrUpdate()方法,作用基本一致,不过略有区别。
4》与[b]saveOrUpdate()方法的区别是:[/b]
[b] 1.saveOrUpdate()是完全更新数据[/b]
[b] 2.merge()方法在更新数据的时候,例如数据库中本条数据的name这个字段是‘李四’,而新的要合并的数据中name字段是null,那数据库中name字段的数据是不被替换的,依旧是'李四',而其他字段被替换。[/b]
相关文章推荐
- 自己动手写AsyncTask
- 内存优化
- golang解析xml的方法
- SQL视频(二)
- 前端面试常见题整理----第一篇
- vector的添加删除(含动态内存释放)
- eclipse配置python开发环境
- C++主要特性/优势
- HDOJ 2111 Saving HDU
- Zigbee低功耗—终端节点休眠实现
- 线性回归和局部加权线性回归
- Java正则表达式入门
- js中json的创建和调用
- 关于android:windowIsTranslucent 属性问题与第一加载白屏问题!
- sqilt()分离字符串
- webView 返回按钮和关闭按钮
- 基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用
- LNMP----初步搭建
- 通过文件的方式对硬盘扇区进行直接读写操作
- TextView使用Spannable设置复合文本