既然是用了HIBERNATE那是不是PO当作VO显示
在JSP里了?为什么会有这样的操作呢?从ID获得一个
PO然后设置其它五个值不就可以了?你设置Struts2的
这个属性有什么用,默认是单例的,肯定不行,PROTOTYPE会
每次请求生成一个.SESSION就是在会话范围有效了
request.getParameter(id);得到ID然后
五个属性的setter/getter
Entity po=service.getEntity(id);获得你要修改的PO
然后po.set()设置相关的五个属性,不就可以了?

解决方案 »

  1.   

    如3楼的 struts2有个关键的二次绑定。在修改之前现将要修改的查询出来,然后再对做过处理的字段进行处理。没修改的就不要去动它。hibernate会自动判断哪些字段改变了然后做update操作。
      

  2.   

    除了2,3楼说的,更新前把没修改的取出来,在结合修改的封装到list里存;或用form标签做
      

  3.   

    我也在找这个问题的答案啊。困扰中。目前我用的是这两个方法,一个是将修改前的数据保存在session中。用更新的数据去修改这个Session中的对象后再更新到数据库,或在修改前将数据对象根据ID再取出修改,然后保存。
    有什么好的方法告诉一声,我也想知道