Вставьте данные в две сопоставленные таблицы весной - PullRequest
2 голосов
/ 16 ноября 2011

2 пользователя таблицы и userprofile сопоставлены друг с другом.

В методе get.java для userprofile есть:

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

и в методе получения Userprofile.java для пользователя:

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

В User.jsp commandName является "userprofile", а метод отправки в контроллере:

 @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");

}

Когда я вызываю метод вставки пользовательского класса, он вставляется в таблицу userprofile, но в таблицу userprofile идентификатор пользователя не обновляется.

Пожалуйста, помогите.

1 Ответ

1 голос
/ 16 ноября 2011

Вы должны добавить профиль пользователя для пользователя

user.setUserProfile(userProfileBean);

и добавить объект пользователя в userProfileBean

userProfileBean.setUser(user);
...