atitit.hbnt orm db 新新增更新最佳实践o99
2014-09-11 23:42
239 查看
atitit.hbnt orm db 新新增更新最佳实践o99
1. merge跟个save了. 1
2. POJO对象处于游离态、持久态、托管态。使用merge()的情况。 1
3. @DynamicInsert @DynamicUpdate 2
4. 实际调用merge()生成的sql 2
5. 参考 2
UpdateorSave 已经不推荐了...
生成的黑头子有个merge跟个save了...
1、游离态ID为空,数据库肯定不存在,调用merge(),直接插入数据库。
2、持久态,pojo对象从数据库中取出的行记录,调用merge(),自动比较该对象和数据库对象是否发生更改,是则更新该行记录。
3、托管态,通过编程的方式指定ID,程序构造的POJO对象,调用merge(),自动比较数据库该ID行记录与POJO对象的属性。不一样则更新。
但通过程序构造的POJO对象,并指定ID。但POJO的ID为native,并指定了数据库的sequence,调用merge()后,程序指定的ID,还是会被改成新的序列ID,则,该POJO对象还是成了ID不为空、数据库不存在该ID的游离态。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
select gvmaterial0_.material_id as material1_0_0_, gvmaterial0_.application_type as applicat2_0_0_, gvmaterial0_.can_down_org as can3_0_0_, gvmaterial0_.create_time as create4_0_0_, gvmaterial0_.effectie_time as effectie5_0_0_, gvmaterial0_.failure_time as failure6_0_0_, gvmaterial0_.file_path as file7_0_0_, gvmaterial0_.material_description as material8_0_0_, gvmaterial0_.material_type as material9_0_0_, gvmaterial0_.play_time as play10_0_0_, gvmaterial0_.size as size0_0_, gvmaterial0_.update_time as update12_0_0_, gvmaterial0_.update_user as update13_0_0_ from gv_material gvmaterial0_ where gvmaterial0_.material_id=1
32 Query update gv_material set play_time=125 where material_id=1
1. merge跟个save了. 1
2. POJO对象处于游离态、持久态、托管态。使用merge()的情况。 1
3. @DynamicInsert @DynamicUpdate 2
4. 实际调用merge()生成的sql 2
5. 参考 2
1. merge跟个save了.
UpdateUpdateorSave 已经不推荐了...
生成的黑头子有个merge跟个save了...
2. POJO对象处于游离态、持久态、托管态。使用merge()的情况。
测试过程中游离态、持久态、有用1、游离态ID为空,数据库肯定不存在,调用merge(),直接插入数据库。
2、持久态,pojo对象从数据库中取出的行记录,调用merge(),自动比较该对象和数据库对象是否发生更改,是则更新该行记录。
3、托管态,通过编程的方式指定ID,程序构造的POJO对象,调用merge(),自动比较数据库该ID行记录与POJO对象的属性。不一样则更新。
但通过程序构造的POJO对象,并指定ID。但POJO的ID为native,并指定了数据库的sequence,调用merge()后,程序指定的ID,还是会被改成新的序列ID,则,该POJO对象还是成了ID不为空、数据库不存在该ID的游离态。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
3. @DynamicInsert @DynamicUpdate
4. 实际调用merge()生成的sql
首先select在upselect gvmaterial0_.material_id as material1_0_0_, gvmaterial0_.application_type as applicat2_0_0_, gvmaterial0_.can_down_org as can3_0_0_, gvmaterial0_.create_time as create4_0_0_, gvmaterial0_.effectie_time as effectie5_0_0_, gvmaterial0_.failure_time as failure6_0_0_, gvmaterial0_.file_path as file7_0_0_, gvmaterial0_.material_description as material8_0_0_, gvmaterial0_.material_type as material9_0_0_, gvmaterial0_.play_time as play10_0_0_, gvmaterial0_.size as size0_0_, gvmaterial0_.update_time as update12_0_0_, gvmaterial0_.update_user as update13_0_0_ from gv_material gvmaterial0_ where gvmaterial0_.material_id=1
32 Query update gv_material set play_time=125 where material_id=1
5. 参考
Hibernate更新某些字段的几种update方法 - zb0567的专栏 - 博客频道 - CSDN.NET.htm相关文章推荐
- atitit.hbnt orm db 新新增更新最佳实践o99
- atitit.hbnt orm db 新新增更新最佳实践o7
- atitit.hbnt orm db 新新增更新最佳实践o7
- Atitit.ati orm的设计and架构总结 适用于java c# php版
- atitit.数据验证--db数据库数据验证约束
- atitit.数据验证--db数据库数据验证约束
- CYQ.Data.Orm.DBFast 新增类介绍(含类的源码及新版本配置工具源码)
- atitit.数据验证--db数据库数据验证约束
- atitit.orm的缺点与orm框架市场占有率,选型attilax总结
- CYQ.Data.Orm.DBFast 新增类介绍(含类的源码及新版本配置工具源码)
- atitit.orm的缺点与orm框架市场占有率,选型attilax总结
- Atitit 热更新资源管理器 自动更新管理器 功能设计
- Atitit orm的实现模式 data-mapper模式和active-record模式有什么区别
- Atitit 热更新资源管理器 自动更新管理器 功能设计
- Atitit 持久化 之道 attilax 艾龙著 1. 第2章 Java对象持久化技术概述 2 1.1. 2.1 直接通过JDBC API来持久化实体域对象 2 1.2. 2.2 ORM简介 2
- Atitit 热更新资源管理器 自动更新管理器 功能设计
- Atitit orm 之道 艾龙著 1. 一、ORM的由来 1 2. ORM的组成: 2 3. 常见的ORM框架: 3 4. 、ORM与数据持久化的关系 3 5. Atitit
- Atitit orm优缺点 Hinaernate mybatis 区别。attilax总结
- Atitit 基于meta的orm,提升加速数据库相关应用的开发
- CYQ.Data.Orm.DBFast 新增类介绍(含类的源码及新版本配置工具源码)