title: Hibernate One-to-Many constraint violation exception
body: <p>Hi I am trying to do one to many insert but I am having problems. I have two tables:</p>
  
  <pre><code>CREATE TABLE users_app (
  user_id int UNSIGNED NOT NULL AUTO_INCREMENT,
  user_number varchar(45) NOT NULL default '0',
  user_password varchar(45) NOT NULL default '0',
  os int(1) unsigned NOT NULL,
  token varchar(500) NOT NULL,
  PRIMARY KEY (`user_id`)
  ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
  
  CREATE TABLE user_app_devices(  
   id int AUTO_INCREMENT PRIMARY KEY,  
   user_id int UNSIGNED  NULL,  // Here it can accept null values
   device_name varchar(45) NOT NULL,
   FOREIGN KEY (user_id) REFERENCES users_app (user_id)  
  )ENGINE=InnoDB CHARSET=utf8;
  </code></pre>
  
  <p>My classes:</p>
  
  <pre><code>@Entity
  @Table(name="user_app_devices")
  public class UserAppDevice implements Serializable {
  private static final long serialVersionUID = 1L;
  
  @Id
  @Column(name="id")
  @GeneratedValue(strategy = IDENTITY)
  private int id;
  
  
  @Column(name="device_name")
  private String deviceName;
  
  //bi-directional many-to-one association to UsersApp
  @ManyToOne
  @JoinColumn(name="user_id",insertable=false,updatable=false)  // Ignoring this column    using JSON IGNORE
  @JsonIgnore     
  private UsersApp usersApp;
  
  
  @Column(name="user_id")
  private int userId;
  
  public UserAppDevice() {
  }
  
  public int getId() {
   return this.id;
  }
  
  public void setId(int id) {
    this.id = id;
  }
  
  public int getUserId() {
   return this.id;
  }
  
  public void setUserId(int id) {
    this.id = id;
  }
  
  public String getDeviceName() {
   return this.deviceName;
  }
  
  public void setDeviceName(String deviceName) {
   this.deviceName = deviceName;
  }
  
  public UsersApp getUsersApp() {
   return this.usersApp;
  }
  
  public void setUsersApp(UsersApp usersApp) {
   this.usersApp = usersApp;
  }
  
  }
  
  @Entity
  @Table(name="users_app")
  public class UsersApp implements Serializable {
   private static final long serialVersionUID = 1L;
  
  @Id
  @GeneratedValue(strategy = IDENTITY)
  @Column(name="user_id")
  private int userId;
  
  private int os;
  
  private String token;
  
   @Column(name="user_number")
   private String userNumber;
  
   @Column(name="user_password")
   private String userPassword;
  
   //bi-directional many-to-one association to UserAppDevice
   @OneToMany(mappedBy="usersApp")
   private List&lt;UserAppDevice&gt; userAppDevices;
  
   public UsersApp() {
   }
  
   public int getUserId() {
     return this.userId;
   }
  
   public void setUserId(int userId) {
    this.userId = userId;
   }
  
   public int getOs() {
    return this.os;
   }
  
   public void setOs(int os) {
    this.os = os;
   }
  
   public String getToken() {
    return this.token;
   }
  
   public void setToken(String token) {
    this.token = token;
   }
  
   public String getUserNumber() {
     return this.userNumber;
   }
  
   public void setUserNumber(String userNumber) {
     this.userNumber = userNumber;
   }
  
   public String getUserPassword() {
     return this.userPassword;
    }
  
   public void setUserPassword(String userPassword) {
      this.userPassword = userPassword;
   }
  
   public List&lt;UserAppDevice&gt; getUserAppDevices() {
      return this.userAppDevices;
   }
  
   public void setUserAppDevices(List&lt;UserAppDevice&gt; userAppDevices) {
     this.userAppDevices = userAppDevices;
   }
  
   public UsersApp(int os, String token, String userNumber, String userPassword) {
     this.os = os;
     this.token = token;
     this.userNumber = userNumber;
     this.userPassword = userPassword;
   }
  </code></pre>
  
  <p>In 'user_app_devices' Table 'user_id' Column accepting <code>Null</code> value in <strong>MySql</strong>. But using <strong>Hibernate</strong> it's not accepting value ,giving the following errror Message is :</p>
  
  <pre><code>[WARN] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1452, SQLState: 23000
  [ERROR] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Cannot add or update a child row: a foreign key constraint fails (`user_app_devices`, CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `user_app` (`user_id`))
  [ERROR] com.jaguar.nbfcapp.aop.logging.LoggingAspect - Exception in com.example.web.rest.userResource.create() with cause = org.hibernate.exception.ConstraintViolationException: could not execute statement
  org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute
  </code></pre>