hibernate动态插入和更新的理解!

当初用hibernate做项目的时候,发现一个问题,就是我给数据设置了默认值,当从数据库插入数据时,设置默认值的那个字段总是为空,打印SQL语句就发现,hibernate把我那个默认值字段也插入了数据,不过为null,当时我用的是一个重写sql语句的方法来解决了,今天看见了一个动态插入,让后试了下,感觉挺好用的,就是在对应的XML映射文件里面<class>标签里面添加一个dynamic-insert="true"就可以了,让后就是动态更新遇到些问题,经过了一番折腾算是理解了动态更新的含义,但是还是没有我想要的效果。

115204_D9pP_3142419.png115353_HFRQ_3142419.png

我发现这样实现不了,我想要实现的效果,看sql

115444_Yg1t_3142419.png

让后看下面,我想你就知道,什么是动态更新了。

115645_yulJ_3142419.png

接下来看SQL

120337_GKhX_3142419.png

是不是突然明白了什么?最上面那个为什么会更新所有字段,因为我没有设置password的值,所以password的值就为null,但是null又和原来数据库里面的值xiongwei不一样,所以也会更新。想做到我最上面那种效果,就必须要先查询一次。就得这样改;

120829_BoyZ_3142419.png

看sql

120848_b1OJ_3142419.png

这里看懂了木有。。。。。

转载于:https://my.oschina.net/u/3142419/blog/821960

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值