Hibernate插入数据时取字段的默认值,更新时只更新修改过的属性值
2013-08-15 11:07
861 查看
使用Hibernate向数据库插入或更新数据的时候 ,如果想要取到数据库字段的默认值,可以在类的Hibernate映射文件的Class标签中加上dynamic-insert和dynamic-update。如果数据库字段是可以为空且有默认值 的情况下,只要在代码里不给字段赋值,在插入的时候,就可以取到数据库中字段的默认值了。
其实Hibernate的dynamic-insert和dynamic-update的值为true时,Hibernate动态生成sql语句时,语句中只包含要插入或者修改的字段,这样既可以节省SQL语句的执行时间,又可以提高程序的运行效率.。
正是因为使用dynamic-insert,Hibernate在动态生成sql语句时只会包含要插入的字段(也就是有值的类的属性)这个原因,所以当不给属性赋值时,insert语句中就不会有这个字段,就可以取到数据库中字段的默认值了。
Hibernate做update时,若dynamic-update的值为true,在对象从数据库加载到hibernate session的时候会保存一份快照,做更新的时候与这个快照做比较,只更新改动过的值
其实Hibernate的dynamic-insert和dynamic-update的值为true时,Hibernate动态生成sql语句时,语句中只包含要插入或者修改的字段,这样既可以节省SQL语句的执行时间,又可以提高程序的运行效率.。
正是因为使用dynamic-insert,Hibernate在动态生成sql语句时只会包含要插入的字段(也就是有值的类的属性)这个原因,所以当不给属性赋值时,insert语句中就不会有这个字段,就可以取到数据库中字段的默认值了。
Hibernate做update时,若dynamic-update的值为true,在对象从数据库加载到hibernate session的时候会保存一份快照,做更新的时候与这个快照做比较,只更新改动过的值
相关文章推荐
- Hibernate插入数据时取字段的默认值,更新时只更新修改过的属性值
- PHP ThinkPHP补充。插入(修改)数据时,对默认字段进行自动填充;form表单字段映射成合法字段;"瞻前顾后机制"
- hibernate在Oracle中插入数据,默认字段被设置为null的问题解决
- thinkphp 在数据库更新(save)的时候,如果字段没有被修改,会更新失败 和数据的自动验证,插入的时候可以自动验证,但更新的时候就不能验证了
- 转载!!!Hibernate插入和修改数据到数据库中时不修改存在默认值字段
- hibernate中只让数据修改的字段更新数据库
- hibernate中只让数据修改的字段更新数据库
- Hibernate插入和修改数据到数据库中时不修改存在默认值字段
- Navicat修改mysql数据库表插入数据时字段添加默认当前时间
- Hibernate插入和修改数据到数据库中时不修改存在默认值字段
- SQL语句,数据更新,数据插入删除修改和对视图的更新操作
- hibernate映射数据库表如何使表中字段默认值生效(如更新当传来的值为null时不替换表中值)
- Hibernate 插入(更新)不了数据(或者插入(更新)失败)
- 【个人学习笔记10之--数据修改之插入数据,更新数据,删除数据.】
- 绕过Hibernate API,直接通过JDBC API批量更新和插入数据
- Hibernate update 只更新被修改字段
- yii2.0之-模型中attributeLabels()函数的作用 和修改数据表中的字段后如何更新model中的字段
- Hibernate 数据的批量插入、更新和删除
- hibernate添加数据,默认字段为null的问题解决
- Hibernate中如何只更新修改过的字段,未修改的字段不用更新??(3中方法)