title: How to deal with error applying BeanValidation relational constraints?
body: <p>I've got some problems with making oneToMany relation in Spring + Hibernate 4.1 application
  This is my entities classes. Every USER_ROLE record has FK to USER record. I can't find anything useful on the Internet.</p>
  
  <pre><code>@Entity
  @Table( name = "USERS" )
  public class User {
  
       long id;
       String login;
       String password;
       String name;
       String surname;
       GregorianCalendar birthDate;
       String email;
       GregorianCalendar joinDate;
       String randomKey;
       List&lt;UserRole&gt; userRoles = new ArrayList&lt;UserRole&gt;();
  
      public User(){ } //JavaBean Hibernate requirement
  
      @Id
      @GeneratedValue(generator="increment")
      @GenericGenerator(name="increment", strategy = "increment")
      @Column(name="USER_ID", unique=true, nullable=false)
      public long getId() {
          return id;
      }
  
      public void setId(long id) {
          this.id = id;
      }
  ...
  
      @OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
      public List&lt;UserRole&gt; getUserRoles() {
          return userRoles;
      }
  
      public void setAccountRole(List&lt;UserRole&gt; aUserRoles) {
          for (UserRole role : aUserRoles) {
              this.addUserRole(role);
          }
      }
  
      public void addUserRole(UserRole aRole) {
          if (!this.userRoles.contains(aRole)) {
              aRole.setUser(this);
              this.userRoles.add(aRole);
          }
      }
  }
  
  
  @Entity
  @Table(name = "USER_ROLE")
  public class UserRole {
  
      Integer roleId;
      String role;
      User user;
  
      public UserRole() { }
  
  //  public UserRole(String role) {
  //      this.setRole(role);
  //  }
  
      @Id
      @GeneratedValue(generator="increment")
      @GenericGenerator(name="increment", strategy = "increment")
      @Column(name = "ROLE_ID", unique = true, nullable = false)
      public Integer getRoleId() {
          return roleId;
      }
  
      public void setRoleId(Integer roleId) {
          this.roleId = roleId;
      }
  
      @Basic
      public String getRole() {
          return role;
      }
  
      public void setRole(String role) {
          this.role = role;
      }
  
      @ManyToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "USER_ID", nullable = false)
      public User getUser() {
          return user;
      }
  
      public void setUser(User aUser) {
          this.user = aUser;
      }
  }
  </code></pre>
  
  <p>And this is first exception in my stack trace:</p>
  
  <pre><code>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'homeController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: pl.rafalo235.encyklopedia.model.dao.UserDAO pl.rafalo235.encyklopedia.controllers.HomeController.userDAO; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDAO': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.orm.hibernate4.LocalSessionFactoryBean pl.rafalo235.encyklopedia.model.dao.UserDAO.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in ServletContext resource [/WEB-INF/encyklopediaDispatcherServlet-servlet.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Error applying BeanValidation relational constraints
      at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
      at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
      at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
      at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)
      at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588)
      at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645)
      at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508)
      at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449)
      at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)
      at javax.servlet.GenericServlet.init(GenericServlet.java:160)
      at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1189)
      at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1103)
      at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010)
      at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4935)
      at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5262)
      at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5257)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)
  </code></pre>