假如实体有40列,页面修改的值只有10列。。不用update只用merge这样的话就会把其余30列赋空,暂时的解决是页面放隐藏域,有没更好的办法。。用update,难判断,更繁琐

解决方案 »

  1.   

    用一个DTO,页面10个值通过DTO传到持久层,然后merge到entity里面,然后在更新。
      

  2.   

    这种要根据需求来,如果你的数据需要随时更新,那么最好的实时update,如果你流程需要用户提交后再update的话,那么你可以先把数据查询出来放在内存中,修改页面的时候修改当前内存里面的数据,最后提交的时候再统一修改
      

  3.   

    我也常常遇到与LZ类似的问题,不过好像很多时候我是用了个比较“烂”的方法,不过数据保证是100%对的,那就是每次修改更新的时候 我先根据ID去DB中查询这个Entity出来,然后在取得页面修改的数据,最后在给这个Entity进行Set属性赋值,再Update,如果不是这样子操作,很多情况下Update的时候Entity很多属性都没有,那么保存后就悲哀了....虽然这个方法效率不怎么样,但是还是可行的...
      

  4.   

    后来发现了 其实有几种方法可以实现这个的效果,如果你的是使用hbm xml配置的的话 可以给class设置 dynamic-update=true即可