在spring中将数据插入两个映射表中

时间:2011-11-16 15:06:29

标签: hibernate spring spring-mvc hibernate-mapping

我有2个表用户和userprofile相互映射。

用户配置文件的User.java getter方法是:

 @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user")
 public Userprofile getUserprofiles() {
    return this.userprofiles;
 }

并且在用户的Userprofile.java getter方法中是:

 @OneToOne(fetch = FetchType.LAZY)
 @JoinColumn(name = "UserID")
 public User getUser() {
    return this.user;
 }

在User.jsp中,commandName是“userprofile”,控制器中的submit方法是:

 @RequestMapping("/insertUser.do")
 public ModelAndView showLoginForm( @ModelAttribute("userprofile") Userprofile userProfileBean,BindingResult result, HttpServletRequest request, HttpServletResponse response )throws Exception
{

            java.util.Date utilDate=new java.util.Date();
            java.sql.Timestamp timest=new Timestamp(utilDate.getTime());

            userProfileBean.setEntryDate(timest);

            User user = new User();
            user.setUserProfile(userProfileBean);
            this.userServ.createUser(user);
            return new ModelAndView(new RedirectView("usersMapping.do"), "Test", "Test");

}

当我调用用户类的insert方法时,它会插入用户和userprofile表,但是在userprofile表中,userid没有更新。

请帮忙。

1 个答案:

答案 0 :(得分:1)

您应该将用户个人资料添加到用户

user.setUserProfile(userProfileBean);

还将用户对象添加到userProfileBean

userProfileBean.setUser(user);