title: org.hibernate.exception.DataException: could not execute statement
body: <p>I am new in Spring and Hibernate and i'm develop E-Commerce management system and my trouble is in the uploading files into DB with Hibernate. I have some service but that i see it doesn't work.</p>
  
  <p>here is my code </p>
  
  <p>domain</p>
  
  <pre><code>@Entity
  @Table(name = "DEPUTES_APPEAL")
  public class DeputesAppeal implements Serializable {
  
  @Id
  @Column(name = "ID")
  @GeneratedValue
  private long id;
  
  @Column(name = "NumberOfAppeal")
  private Integer number;
  
  @Column(name = "DateOfIncomingAppeal")
  private Date IncomingDate;
  
  @Column(name = "NameOfDepute")
  private String NameOfDepute;
  
  @Column(name = "ResolutionOfChief")
  private String ResolutionOfChief;
  
  @Column(name = "TypeOfAppeal")
  private String typeOfAppeal;
  
  @OneToMany(mappedBy = "deputesAppeal", cascade =                                                                           
  CascadeType.ALL, fetch= FetchType.EAGER)
  
  private final Set&lt;UploadFiles&gt; fileUpload = new HashSet&lt;UploadFiles&gt;           
  ();
  
  public DeputesAppeal(){}
  
  public DeputesAppeal(int id, int number, Date incomingDate, String   
  nameOfDepute, String resolutionOfChief) {
      this.id = id;
      this.number = number;
      this.IncomingDate = incomingDate;
      this.NameOfDepute = nameOfDepute;
      this.ResolutionOfChief = resolutionOfChief;
  }
  
  
  public long getId() {
      return id;
  }
  
  public Integer getNumber() {
      return number;
  }
  
  public void setNumber(Integer number) {
      this.number = number;
  }
  
  public Date getIncomingDate() {
      return IncomingDate;
  }
  
  public void setIncomingDate(Date incomingDate) {
      IncomingDate = incomingDate;
  }
  
  public String getNameOfDepute() {
      return NameOfDepute;
  }
  
  public void setNameOfDepute(String nameOfDepute) {
      NameOfDepute = nameOfDepute;
  }
  
  public String getResolutionOfChief() {
      return ResolutionOfChief;
  }
  
  public void setResolutionOfChief(String resolutionOfChief) {
      ResolutionOfChief = resolutionOfChief;
  }
  
  public String getTypeOfAppeal() {
      return typeOfAppeal;
  }
  
  public void setTypeOfAppeal(String typeOfAppeal) {
      this.typeOfAppeal = typeOfAppeal;
  }
  
  public Set&lt;UploadFiles&gt; getFileUpload() {
      return fileUpload;
  }
  }  
  </code></pre>
  
  <p>dao layer where i am save object whose field is Set of UploadFiles</p>
  
  <pre><code>public class MysqlImpl implements DeputesAppealDao{
  
  @Autowired
  SessionFactory sessionFactory;
  
  public List&lt;DeputesAppeal&gt; getAll() {
      Query query = sessionFactory.getCurrentSession().createQuery("from  
  DeputesAppeal");
      return query.list();
  }
  
  public DeputesAppeal getById(Integer id) {
      DeputesAppeal deputesAppeal = (DeputesAppeal)   
  sessionFactory.getCurrentSession().get(DeputesAppeal.class, id);
      return deputesAppeal;
  }
  
  public void addAppeal(DeputesAppeal deputesAppeal,   
  CommonsMultipartFile[] fileUpload) {
      if (fileUpload != null &amp;&amp; fileUpload.length &gt; 0) {
          for (CommonsMultipartFile aFile : fileUpload) {
              UploadFiles uploadFiles = new UploadFiles();
              uploadFiles.setFileName(aFile.getOriginalFilename());
              uploadFiles.setData(aFile.getBytes());
              deputesAppeal.addFile(uploadFiles);
              sessionFactory.getCurrentSession().save(deputesAppeal);
          }
      }
  }
  
  public void deleteAppeal(Integer id) {
       DeputesAppeal deputesAppeal = (DeputesAppeal)  
  sessionFactory.getCurrentSession().get(DeputesAppeal.class, id);
       sessionFactory.getCurrentSession().delete(deputesAppeal);
  }
  
  public void editAppeal(DeputesAppeal deputesAppeal, DeputesAppeal  
  existingDeputesAppeal) {
       sessionFactory.getCurrentSession().save(existingDeputesAppeal);
  }
  
  public DeputesAppeal modSession(DeputesAppeal deputesAppeal) {
      DeputesAppeal deputesAppeal1 = (DeputesAppeal) 
  sessionFactory.getCurrentSession().get(DeputesAppeal.class, 
  deputesAppeal.getId());
      return  deputesAppeal1;
  }
  
  
  public List&lt;DeputesAppeal&gt; abstractSearch(String searchingChar) {
      Query query = sessionFactory.getCurrentSession().createQuery("from     
  DeputesAppeal where id = " + searchingChar);
      return query.list();
  }
  
  
  }
  </code></pre>
  
  <p>and at least is Controller </p>
  
  <pre><code>@Controller
  @RequestMapping(value = "/main")
  public class MainController {
  
  @Qualifier("deputesAppealServiceBean")
  @Autowired
  DeputesAppealService deputesAppealService;
  
  
  @RequestMapping(value = "/mainFrame", method = RequestMethod.GET)
  public String getMainPage(){
      return "mainPage";
  }
  
  @RequestMapping(value = "/resultOfSearching", method =   
  RequestMethod.GET)
  public String getSearchResult(Model model, 
  @ModelAttribute("searchChar")String searchResult){
      List&lt;DeputesAppeal&gt; deputesAppeals =  
  deputesAppealService.abstractSearch(searchResult);
      model.addAttribute("ListOfAppeals", deputesAppeals);
      return "searchingResultPage";
  }
  
  @RequestMapping(value = "mainFrame/new", method = RequestMethod.GET)
  public String getAddNewAppealPage(){
      return "addPage";
  }
  
  
  @RequestMapping(value = "mainFrame/new", method = RequestMethod.POST)
  public String addNewAppeal(@ModelAttribute("Appeal")DeputesAppeal  
  deputesAppeal,
  
  @RequestParam("fileUpload")CommonsMultipartFile[] fileUpload){
      deputesAppealService.add(deputesAppeal, fileUpload);
      return "mainPage";
  }
  
  @RequestMapping(value = "mainFrame/deleted", method =  
  RequestMethod.GET)
  public String deleteAppeal(@RequestParam(value = "id", required = 
  true) Integer id, Model model){
      deputesAppealService.delete(id);
      model.addAttribute("id", id);
      return "deletedPage";
  }
  
  @RequestMapping(value = "mainFrame/editPage", method =    
  RequestMethod.GET)
  public String GetEdit(@RequestParam(value = "id", required = true) 
  Integer id, Model model){
      model.addAttribute("editedAppeal", 
  deputesAppealService.getById(id));
      return "editPage";
  }
  
  @RequestMapping(value = "mainFrame/editPage", method =  
  RequestMethod.POST)
  public String editCurrentAppeal(@ModelAttribute("userAttribute") 
  DeputesAppeal deputesAppeal,@RequestParam(value = "id", required =   
  true)Integer id, Model model) {
      deputesAppeal.setNumber(id);
      deputesAppealService.edit(deputesAppeal);
      model.addAttribute("id", id);
      return "editedPage";
  }
  }
  </code></pre>
  
  <p>and when on JSP page i submit input data i handle the next errors</p>
  
  <pre><code>HTTP Status 500 - Request processing failed; nested exception is       
  org.springframework.dao.DataIntegrityViolationException: could not 
  execute statement; SQL [n/a]; nested exception is 
  org.hibernate.exception.DataException: could not execute statement
  </code></pre>
  
  <p>domain of UploadFiles</p>
  
  <pre><code>@Entity
  @Table(name = "UploadFiles")
  public class UploadFiles implements Serializable {
  
  @Id
  @GeneratedValue
  @Column(name = "FILE_ID")
  private long id;
  
  @Column(name = "FILE_NAME")
  private String fileName;
  
  @Column(name = "FILE_DATA")
  private byte[] data;
  
  @ManyToOne
  @JoinColumn(name = "ID")
  private DeputesAppeal deputesAppeal;
  
  public UploadFiles(){}
  
  public UploadFiles(long id, String fileName, byte[] data){
      this.id = id;
      this.fileName = fileName;
      this.data = data;
  }
  
  
  public long getId() {
      return id;
  }
  
  public String getFileName() {
      return fileName;
  }
  
  public void setFileName(String fileName) {
      this.fileName = fileName;
  }
  
  public byte[] getData() {
      return data;
  }
  
  public void setData(byte[] data) {
      this.data = data;
  }
  
  public DeputesAppeal getDeputesAppeal() {
      return deputesAppeal;
  }
  
  public void setDeputesAppeal(DeputesAppeal deputesAppeal) {
      this.deputesAppeal = deputesAppeal;
  }
  </code></pre>