你的Teacher对象是瞬时对象,
而且你的对象的id,是空的。
对一个要更新的对象,应该确保是有一个id,而且这个id对应的记录在数据库是存在的。你的tid有没有取到?,
如果确定这个实体有id了,还报错。
那你先刷新一下实体,然后在修改。

解决方案 »

  1.   

    应该是没有拿到,我觉得这个是save的,但我按照自己的想法改了之后还是一堆错误,能加下QQ发给您看下吗
      

  2.   

    session.update(tc);
    在这个地方打个断点,看看tc的主键是什么,然后向上跟一下代码。
          // 这里的t对象的主键是哪个属性?
          Teacher t=new Teacher();
          TeacherDao td=new TeacherDao();
          t.setAge(age);
          t.setEmail(email);
          t.setTeaId(teaId); //如果这个设置的是主键,看看这里的teaId是什么?是不是你要的值。
          t.setTel(tel);
          t.setTname(tname);
          t.setTpassword(tpassword);
          t.setTsex(tsex);
          t.setTqq(tqq);
          t.setTinf(tinf);
          t.setTsubject(tsubject);
          if(t!=null){
              td.updateTeacher(t);
              return SUCCESS;
          }
    一般更新操作,建议先查下一出要更新的对象,然后修改对象的属性后再update到数据库。
      

  3.   

    我搞定了!就是DAO拿不到对象的问题!我改写了一下不用new,直接先用td拿对象就好了,非常感谢你们!