请问个有关问题,hibernate更新时,属性值为null的字段不更新

请教个问题,hibernate更新时,属性值为null的字段不更新
举个例子,对象User有两个属性,name,password,数据库里的值是name = "a",password=“1”

在页面上只显示name,只修改name的值,password不显示在页面上,也不修改,页面上name的值改成"b"。所以更新的时候,user对象里name的值是“b”,password是null。

通过this.getHibernateTemplate().merge(user);的方法更新数据库,name和password都被更新了。name变成"b",password变成null。merger这个方法只更新有变化的字段,name的值从"a"变为"b",password的值从"1"变为了null,所以都被更新了。

本来是想把那些不更新的字段放在页面的hidden标签里,一起传入表单,但感觉这种办法比较搓。

有什么办法让属性值为null的字段不更新?
------解决思路----------------------
据我所知是不能的,下面是更新方法,缺点是如果更新字段多的话比较麻烦。其中set部门的代码,也可以写个工具类,通过java的反射机制来判断

User user = userService.getUser(id);//先取出
user.setAa();//在set需要更新的字段
user.setAb();
....
userService.updateUser(user);

------解决思路----------------------
   @Column(updatable=false) ,updatable属性表示在使用“UPDATE”脚本插入数据时,是否需要更新该字段的值。试试这个吧