Hibernate插入数据时取字段的默认值,更新时只更新修改过的属性值
2013-08-15 11:22
525 查看
使用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插入数据时取字段的默认值,更新时只更新修改过的属性值
- Navicat修改mysql数据库表插入数据时字段添加默认当前时间
- Hibernate插入和修改数据到数据库中时不修改存在默认值字段
- PHP ThinkPHP补充。插入(修改)数据时,对默认字段进行自动填充;form表单字段映射成合法字段;"瞻前顾后机制"
- hibernate在Oracle中插入数据,默认字段被设置为null的问题解决
- hibernate中只让数据修改的字段更新数据库
- hibernate中只让数据修改的字段更新数据库
- thinkphp 在数据库更新(save)的时候,如果字段没有被修改,会更新失败 和数据的自动验证,插入的时候可以自动验证,但更新的时候就不能验证了
- 转载!!!Hibernate插入和修改数据到数据库中时不修改存在默认值字段
- Hibernate插入和修改数据到数据库中时不修改存在默认值字段
- mysql中设置字段默认为空,插入数据时会提示doesn't have a default value的解决办法
- 解决Ext Combobox允许用户插入及修改任意值,不用限制只能新增或修改数据表里即有字段
- SQL Server数据库自增长字段标识列的插入或更新修改操作方法
- Sqlite 常用函数封装:修改密码,创建数据库、获取表段、字段,取值、插入、删除数据、执行Sqlite指令
- Oracle中用随机数更新字段----将一张表的数据插入另一张表----环境设置
- SQL 数据更新(插入数据,修改数据,删除数据) 实例_(学生,课程表,选修表)
- 数据库修改之更新员工表,根据ID删除Mapping表数据,再插入数据
- 小学生之Hibernate插入数据修改数据使用数据库默认值的实现
- Sql Server数据库自增长字段标识列的插入或更新修改操作办法
- mysql 批量修改表中字段数据成不同的值 用一个表更新另一个表的方法