注入employeeService ,new一个employee对象,从表单获得数据填充这个对象, 底层执行的方法时 getSession().saveorUpdate(), 由于表单数据只填充了15个要修改的数据,所以其它5个字段为空,调用saveorUpdate()后数据为空。先从数据库取得当前要修改的对象 再从表单获得数据set进去。但是提示 two open sessions 错误。 
从数据库获取对象时打开了session,而你存数据时使用另外一个session,才提示这个错误。
方法一: 获取对象后关闭session, 修改时再打开session。
方法二: 获取对象和修改对象使用同一个session。个人觉得第二个比较好!

解决方案 »

  1.   

    关键就是在new一个employee对象那出问题了。
    应该是申明一个employee对象,根据你要更新的employee对象的PK查出你的employee实体,
    把查出的实体赋值给申明的employee对象
    再把从表单获取的数据set进去。
    执行saveorUpdate()。
      

  2.   

    \我试过这种方法,但是提示 打开2个session的错误。从数据库根据Pk字段查对象然后在修改都是用employeeService的不同方法来实现的,这个算是一个session么?
      

  3.   

    项目是ssh?
    那要看你spring里面怎么配置的了。你试试在 service中一个方法里面 查对象,并修改它。最好 上码看看。