atitit.hbnt orm db 新新增更新最佳实践o7

1. merge跟个save了. 1

2. POJO对象处于游离态、持久态、托管态。使用merge()的情况。 1

3. @DynamicInsert @DynamicUpdate 2

4. 实际调用merge()生成的sql 2

5. 参考 2

1. merge跟个save了.

Update

UpdateorSave 已经不推荐了...

生成的黑头子有个merge跟个save了...

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

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的游离态。

3. @DynamicInsert @DynamicUpdate

4. 实际调用merge()生成的sql

首先select在up

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

5. 参考

Hibernate更新某些字段的几种update方法 - zb0567的专栏 - 博客频道 - CSDN.NET.htm

atitit.hbnt orm db 新新增更新最佳实践o7的更多相关文章

  1. atitit.hbnt orm db 新新增更新最佳实践o99

    atitit.hbnt orm db 新新增更新最佳实践o99 1. merge跟个save了. 1 2. POJO对象处于游离态.持久态.托管态.使用merge()的情况. 1 3. @Dynami ...

  2. Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全

    Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全 1. #====提升抽象层次1 2. #----使用通用单词1 3. #===使用术语..1 4.  ...

  3. atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换

    atitit.设计模式(1)---职责链模式(chain of responsibility)最佳实践O7 日期转换 1. 需求:::日期转换 1 2. 可以选择的模式: 表格模式,责任链模式 1 3 ...

  4. atitit.(设计模式1)--—职责链(chain of responsibility)最佳实践O7 转换日期

    atitit.设计模式(1)---职责链模式(chain of responsibility)最佳实践O7 日期转换 1. 需求:::日期转换 1 2. 能够选择的模式: 表格模式,责任链模式 1 3 ...

  5. 基于ABP落地领域驱动设计-05.实体创建和更新最佳实践

    目录 系列文章 数据传输对象 输入DTO最佳实践 不要在输入DTO中定义不使用的属性 不要重用输入DTO 输入DTO中验证逻辑 输出DTO最佳实践 对象映射 学习帮助 系列文章 基于ABP落地领域驱动 ...

  6. Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现

    Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现 1. 实现思路:::元插件,元设置... 1 2. 实现流程downzip,unzip,exec 1 3. Zip  ...

  7. Atitit..文件上传组件选型and最佳实践总结(2)----断点续传

    Atitit..文件上传组件选型and最佳实践总结(2)----断点续传 1. 断点续传的原理 1 2. 如何判断一个插件/控件是否支持断点续传?? 1 3. 常用的组件选型结果::马 1 4. 自定 ...

  8. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

  9. atitit.标准时间格式 互相转换 秒数 最佳实践

    atitit.标准时间格式 互相转换 秒数 最佳实践 例如00:01:19 转换为秒数  79,,and互相转换 一个思路是使用div 60 mod...不过麻烦的... 更好的方法是使用stamp ...

随机推荐

  1. Delphi 7学习开发控件

    我们知道使用Delphi快速开发,很大的一方面就是其强大的VCL控件,另外丰富的第三方控件也使得Delphi程序员更加快速的开发出所需要的程序.在此不特别介绍一些概念,只记录自己学习开发控件的步骤.假 ...

  2. delphi之多线程编程

    本文的内容取自网络,并重新加以整理,在此留存仅仅是方便自己学习和查阅.所有代码均亲自测试 delphi7下测试有效.图片均为自己制作. 多线程应该是编程工作者的基础技能, 但这个基础我从来没学过,所以 ...

  3. shell脚本实现数据库自动备份和删除备份

    为了安全起见,我们每天都需要备份数据库,但是备份数据库的时间往往是在凌晨左右,大家都休息,没人使用的时候,这样我们就需要linux系统实现自动备份,即定时自动执行脚本.但是我们又不能让所有的备份一直保 ...

  4. SQL Server 判定时间是否在某个时间区间内

    * FROM sys.objects WHERE name=N'uF_IsRange_Date' AND [type]='FN') DROP FUNCTION uF_IsRange_Date GO S ...

  5. 在updatepanel使用colorbox无效

    今天在给一个使用colorbox的页面加了一个updatepanel后,colorbox无效了,原因是以前的页面初始化colorbox是用 $(document).ready(function(){ ...

  6. 利用Lambda获取属性名称

    感谢下面这篇博文给我的思路: http://www.cnblogs.com/daimage/archive/2012/04/10/2440186.html 上面文章的博主给出的代码是可用的,但是调用方 ...

  7. ubuntu14安装java8

    http://ubuntuhandbook.org/index.php/2015/01/install-openjdk-8-ubuntu-14-04-12-04-lts/

  8. Uber从Postgres切换到MySQL

    Uber工程师在官方博客上描述了他们为什么要从 Postgres 切换到 MySQL 数据库.Uber的早期架构是由 Python编写的后端应用构成,使用了 Postgres 数据库.但此后,Uber ...

  9. 计算机图形学——OpenGL开发库开发库

    vc++6.0 有 OpenGL 的东西.有头文件 GL.H, GLAUX.H, GLU.H 但没有 GLUT 软件包/工具包 如果想使用glut.h的话必须自己添加. 首先下载 OpenGL开发库, ...

  10. Github心得体会

    Github是一个代码托管的网站,以前端的代码为主,还有很多互动.​ 在我的理解看来,github并不仅仅是一个代码库,你可以自由注册,推送自己一些感兴趣编写的源代码.它不是单纯的保存代码,更多的是让 ...