哪个是主键啊
saveOrUpdate 会先根据主键判断数据是否有此主键 然后进行插入或更新动作

解决方案 »

  1.   

    public ActionForward modify(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) {
            EditForm editForm = (EditForm) form;
            int id = editForm.getId();
           
            //实体类
            Message message = new Message();     //这里应该先根据id查询出来 
     //   MessageDAO dao = new MessageDAO();    
    //Message message=  dao.findById(id);   
                                       
            message.setUname(editForm.getUname());
            message.setFname(editForm.getFname());
            message.setSex(editForm.getSex());
            System.out.println(editForm.getSex());
            message.setAddress(editForm.getAddress());
            message.setAge(editForm.getAge());
            message.setPhone(editForm.getPhone());
            message.setEmail(editForm.getEmail());
            message.setQq(editForm.getQq());
            message.setWordplace(editForm.getWordplace());
           
            //创建dao对象
            MessageDAO dao = new MessageDAO();
           
            //开始事务
            Transaction tran = dao.getSession().beginTransaction();
            dao.attachDirty(message);
            tran.commit();
            //刷新记录
            List userList =  dao.findByUname(editForm.getUname());
            request.setAttribute("userlist", userList);
           
            return mapping.findForward("success"); 
      

  2.   

            message.setUname(editForm.getUname()); 
            message.setFname(editForm.getFname()); 
            message.setSex(editForm.getSex()); 
            System.out.println(editForm.getSex()); 
            message.setAddress(editForm.getAddress()); 
            message.setAge(editForm.getAge()); 
            message.setPhone(editForm.getPhone()); 
            message.setEmail(editForm.getEmail()); 
            message.setQq(editForm.getQq()); 
            message.setWordplace(editForm.getWordplace()); 没有啊 你的ID是自动增长列?
    你设都不设 也就是肯定他根据你现在的数据在数据库找不到主键 那当然会执行新增动作