请大家帮我看看接下来的代码应该如何设计?

我先注册以后,登录系统,此时user表中有些字段(email,sex,pwd)是有数据的。但是后面实现修改个人信息的功能(birth,tel.music),代码如下:
//得到当前用户[从session取出]
Users loginUser = (Users) request.getSession().getAttribute("loginuser");

    //从表单中获取修改个人的信息(birth,tel,website,msn,book,movie,music,sport,cartoon)
    UserForm userForm = (UserForm)form;

    Users  user = new Users();
    try{
       user.setBirth(format.parse(userForm.getBirth()));
    }catch(ParseException e){
        e.printStackTrace();
    }
    user.setTel(userForm.getTel());
    user.setWebsite(userForm.getWebsite());
    user.setMsn(userForm.getMsn());
    user.setBook(userForm.getBook());
    user.setMovie(userForm.getMovie());
    user.setMusic(userForm.getMusic());
    user.setSport(userForm.getSport());
    user.setCartoon(userForm.getCartoon());

return mapping.findForward("goHomePageUI");
我需要保存这些信息,但是我直接用userService.save(user)会报错,原有的注册时填的信息会没有。这时我应该怎么设计代码?请大家指教

是不是有不可空的字段没有赋值,或者主键重复。

图片说明
这是数据表的设计。
图片说明
这是报错信息。