只更新数据库部分字段数据的方法
来源:互联网 发布:无线传感器网络应用 编辑:程序博客网 时间:2024/06/07 17:54
只更新数据库部分字段数据的方法:
Hibernate中如果直接使用Session.update(Object o);会把这个表中的所有字段更新一遍。
(一)通过控制Hibernate的update语句set后面不出现该字段即可,有3种方法:
(1)XML映射文件中设置property 标签 update = "false" ,如下:设置createTime这个属性在更新中不做修改
<property name="createTime" update="false"/>
在注解中 在属性GET方法上加上@Column(updatable=false)
@Column(updatable=false)
public int getCreateTime() {
return createTime;
}
执行update方法会发现,createTime属性不会被更改(不会出现在set后面)
(2)使用XML映射文件中的 dynamic-update="true"
<class name="com.sccin.entity.Student" table="student" dynamic-update="true"/>
这样就不需要在字段上设置了,
将dynamic-update设置为true,同样的更新,hibernate会动态生成SQL语句,没有值的字段不会出现在update语句中
但这样的方法在注解中没有。
(3)使用HQL语句(灵活,方便):
Query query = session.createQuery("update Teacher t set t.name = 'admin' where id = 3");
这句hql语句执行后,只会更新name属性
(二)在web环境中,可以将不需要修改的字段放入session作用域中保存,调用后台update方法时再取出来,
这样,在hibernate执行update语句时,set也会出现该字段,但由于该字段的数据的数据是从session中取出来的,
所以也不会改变该字段的值。(所有框架都适用)
Hibernate中如果直接使用Session.update(Object o);会把这个表中的所有字段更新一遍。
(一)通过控制Hibernate的update语句set后面不出现该字段即可,有3种方法:
(1)XML映射文件中设置property 标签 update = "false" ,如下:设置createTime这个属性在更新中不做修改
<property name="createTime" update="false"/>
在注解中 在属性GET方法上加上@Column(updatable=false)
@Column(updatable=false)
public int getCreateTime() {
return createTime;
}
执行update方法会发现,createTime属性不会被更改(不会出现在set后面)
(2)使用XML映射文件中的 dynamic-update="true"
<class name="com.sccin.entity.Student" table="student" dynamic-update="true"/>
这样就不需要在字段上设置了,
将dynamic-update设置为true,同样的更新,hibernate会动态生成SQL语句,没有值的字段不会出现在update语句中
但这样的方法在注解中没有。
(3)使用HQL语句(灵活,方便):
Query query = session.createQuery("update Teacher t set t.name = 'admin' where id = 3");
这句hql语句执行后,只会更新name属性
(二)在web环境中,可以将不需要修改的字段放入session作用域中保存,调用后台update方法时再取出来,
这样,在hibernate执行update语句时,set也会出现该字段,但由于该字段的数据的数据是从session中取出来的,
所以也不会改变该字段的值。(所有框架都适用)
0 0
- 只更新数据库部分字段数据的方法
- hibernate中的update方法只更新部分字段的方法
- hibernate update 只更新部分字段的3种方法
- hibernate update 只更新部分字段的3种方法
- hibernate update 只更新部分字段的3种方法
- hibernate update 只更新部分字段的3种方法
- mysql数据库update时只更新部分数据方法
- Mysql更新字段值的部分数据:
- Mybatis更新时候只更新变更部分的方法
- [SQL]只更新表中某一部分数据的实现方法
- Spring + Mybatis框架下,数据库更新操作时只更新set过的字段
- MVC 更新部分字段 (数据库先行)
- Hibernate中如何只更新修改过的字段,未修改的字段不用更新??(3中方法)
- Hibernate中如何只更新修改过的字段,未修改的字段不用更新??(3中方法) .
- Oracle中只更新两张表对应数据的方法
- Oracle中只更新两张表对应数据的方法
- hibernate中只让数据修改的字段更新数据库
- hibernate中只让数据修改的字段更新数据库
- Windows系统基础上安装Linux
- C#中调用Halcon导出类
- 模块加载失败 请确保该二进制文件在指定的路径中 找不到指定的模块
- Redux 简明教程
- bzoj3122: [Sdoi2013]随机数生成器
- 只更新数据库部分字段数据的方法
- python 多线程
- EBS FORMS 创建基本过程
- esrifeatureType
- IO端口与IO内存
- c# 笔记整理(2016年9月5日)
- iOS开发中无法安装cocoapods的问题
- Form的职责关系
- 如何预防 XSS 攻击?