用getHibernateTemplate().saveOrUpdate(a);A a= Service.getAById(id);
a.setContent(xxx);
a.setTime(Xx);
Service.save(a);//调用底层的getHibernateTemplate().saveOrUpdate(a);

解决方案 »

  1.   


    同意1楼的方法……
    最好是sava和update分开,不要写在一个一起
      

  2.   

    既然是更新,就一定明确的得到这个对象的ID,然后根据ID得到这个对象,最后对你所需要的每个字段都进行赋值保存就可以了。不会存在其他字段都变成空的情况。
    如果你直接new 一个对象,把ID赋值给这个对象,保存这个对象,虽然也是保存,但是经常会有问题,报异常。merge能解决这个问题,但是可能会出现你说的那种情况,其他没有更改的字段变成了空值。