hibernate动态更新问题

Hibernate可以配置为动态产生update和insert语句。

<class
        name="ClassName"                              
        table="tableName" 
        dynamic-update="true|false"                   
        dynamic-insert="true|false" 
/>

当设为true的时候,Hibernate在运行期动态产生sql语句,对于insert来说,只插入那些不是null的属性,这样就可以支持数据库字段的default属性;对于update来说,只更新那些修改过的属性。

 

不过经过测试发现,在jsp页面当调用update更新po时,hibernate是更新po中的所有属性,包括属性为null,这样意味着你必须填充所有的po属性,包括你的确需要更新的和不需要更新的(不需要更新的属性也要设置为原来属性状态)。在实际应用中,一般是前台页面把更新的值传入,这意味着在业务操作中,虽然需要只更新一个字段时,也必须把所有字段值都传入页面,提交时再填充到po中,但是当po包括很多属性时,这很费事(要在页面中写很多hidden框来保存这些不需要更新的属性)。当然在更新前调用select,再把真正更新的属性设置到po也是一种办法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值