博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
atitit.hbnt orm db 新新增更新最佳实践o7
阅读量:7069 次
发布时间:2019-06-28

本文共 1359 字,大约阅读时间需要 4 分钟。

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

 

 

 

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

首先selectup

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

你可能感兴趣的文章
vs2008打包公布程序
查看>>
浅谈WebService的版本兼容性设计
查看>>
随便弄个名字 以后改
查看>>
opennebula auth module ldap
查看>>
Remove Duplicates from Sorted Array
查看>>
【leetcode】Valid Sudoku (easy)
查看>>
编码原则:表驱动法
查看>>
Constant-on-time buck-boost regulator converts a positive input to a negative output
查看>>
把《c++ primer》读薄(4-1 c和c++数组)
查看>>
捕获或添加对象时的模式切换
查看>>
Android GIS +webservice
查看>>
异常处理
查看>>
怎样将Emoj表情插入mysql5.6数据库__python+mysqldb
查看>>
股价上涨,资金流出以及内外盘的关系
查看>>
cocos2d-x-3.1在eclipse中的环境搭建
查看>>
linux下安装配置svn独立服务器
查看>>
动态规划0—1背包问题
查看>>
[转]redis配置文件redis.conf的详细说明
查看>>
ceph增加osd流程
查看>>
Windows下使用VisualSVN Server搭建SVN服务器
查看>>