//dao
public void update(Po p) {
this.getHibernateTemplate().update(p);
}//Serviceimp
public void update(Po p)
{
  dao.update(p);
}
//Action 
组装一个Po
Po p =new Po()
po.setId=id
po.setName=name
....
Serviceimp serviceimp;//增加 getter/setter方法
serviceimp.update(p)

解决方案 »

  1.   

    如果 setxxx  一部分的话    session.update(a)  怎么执行,其他的字段怎么办??空???不懂啊............ 
    一楼的我更不大懂,难道要从新写个 po 吗???请大哥详细解释,小弟愚沌..........
      

  2.   

    先根据主键或其他值把需要update的那一条get出来,然后将需要更新的属性set为新的值,然后save
      

  3.   

    LS说的有道理
    但是为什么不在配置文件中直接写入dynamic-update呢?
      

  4.   

    Po p =new Po()
    serviceimp.update(p)这样的代码是错误的,  不符合逻辑.
    一个对象已经存在于数据库, 怎么能再new一个呢.
    应该是
    Po p = serviceimp.load(Po.class,id);
    serviceimp.update(p)先load把它从数据库中读出来,然后更新字段, 再update回去.
    dynamic-update并不好, 因为hibernate要判断字段有没改变, 必然要保存一个副本来比较,浪费内存.