问题背景:

  本项目属于SSH项目,持久层关系数据库框架是Hibernate。前台通过序列化表单,将全部参数和参数值传到后台。

预期效果:

  将数据库表里某些Number类型的字段设置初始值为0.0,如果前台表单没有填充这些字段,待执行添加操作后,这些Number类的字段的值为默认值0.0

实际效果;

  执行添加操作后,Number类型的字段的值为空,并非0.0

解决问题:

  数据库默认属性无效的问题

解决方式:

  在映射文件*.hbm.xml的<class name=.....dynamic-insert="true">

解决原理:

  dynamic-insert="true,动态生成SQL语句才执行,如果属性值为空则动态的sql语句中将不再出现空值字段,保证sql的执行效率。

扩展:

  dynamic-update="true",也是动态生成sql语句,只有你修改的属性,才会出现在sql语句中。

适应范围:

  数据库表字段很多的情况使用有助于提交sql语句运行效率。

 

posted on 2014-12-28 11:27  贞心真义  阅读(576)  评论(1编辑  收藏  举报