当初用hibernate做项目的时候,发现一个问题,就是我给数据设置了默认值,当从数据库插入数据时,设置默认值的那个字段总是为空,打印SQL语句就发现,hibernate把我那个默认值字段也插入了数据,不过为null,当时我用的是一个重写sql语句的方法来解决了,今天看见了一个动态插入,让后试了下,感觉挺好用的,就是在对应的XML映射文件里面<class>标签里面添加一个dynamic-insert="true"就可以了,让后就是动态更新遇到些问题,经过了一番折腾算是理解了动态更新的含义,但是还是没有我想要的效果。
我发现这样实现不了,我想要实现的效果,看sql
让后看下面,我想你就知道,什么是动态更新了。
接下来看SQL
是不是突然明白了什么?最上面那个为什么会更新所有字段,因为我没有设置password的值,所以password的值就为null,但是null又和原来数据库里面的值xiongwei不一样,所以也会更新。想做到我最上面那种效果,就必须要先查询一次。就得这样改;
看sql
这里看懂了木有。。。。。