title: Error while trying to insert data into database (Spring and Hibernate)
body: <p>This is the error</p>
  
  <pre><code>   HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: Could not execute JDBC batch update; SQL [insert into links (category, xdate, desc, tags, xtime, tittle, url, id) values (?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
  
  type Exception report
  
  message Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: Could not execute JDBC batch update; SQL [insert into links (category, xdate, desc, tags, xtime, tittle, url, id) values (?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
  
  description The server encountered an internal error that prevented it from fulfilling this request.
  
  exception
  
  org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: Could not execute JDBC batch update; SQL [insert into links (category, xdate, desc, tags, xtime, tittle, url, id) values (?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:659)
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  
  root cause
  
  org.springframework.dao.InvalidDataAccessResourceUsageException: Could not execute JDBC batch update; SQL [insert into links (category, xdate, desc, tags, xtime, tittle, url, id) values (?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
      org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:629)
      org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:793)
      org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:664)
      org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
      org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
      org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:412)
      org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
      org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      com.killerlinks.controllers.LinkformController.save(LinkformController.java:37)
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      java.lang.reflect.Method.invoke(Method.java:597)
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  
  root cause
  
  org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
      org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
      org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
      org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
      org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
      org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
      org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
      org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
      org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
      org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
      org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
      org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
      org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
      org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
      org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:412)
      org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
      org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      com.killerlinks.controllers.LinkformController.save(LinkformController.java:37)
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      java.lang.reflect.Method.invoke(Method.java:597)
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  
  root cause
  
  java.sql.BatchUpdateException: ORA-01747: invalid user.table.column, table.column, or column specification
  
      oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
      oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10657)
      org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
      org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
      org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
      org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
      org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
      org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
      org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
      org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
      org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
      org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
      org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
      org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
      org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:412)
      org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
      org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      com.killerlinks.controllers.LinkformController.save(LinkformController.java:37)
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      java.lang.reflect.Method.invoke(Method.java:597)
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
  
  note The full stack trace of the root cause is available in the Apache Tomcat/7.0.33 logs.
  Apache Tomcat/7.0.33
  </code></pre>
  
  <p>My Dao Class is</p>
  
  <pre><code>package com.killerlinks.dao;
  
  import org.hibernate.SessionFactory;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Repository;
  
  import com.killerlinks.model.Linkform;
  
  @Repository
  public class LinkformDaoImpl implements LinkformDao
  {
      @Autowired
      SessionFactory sessionFactory;
  
      public void insertLink(Linkform linkform)
      {
          System.out.println(linkform.getTittle());
          System.out.println(linkform.getUrl());
          System.out.println(linkform.getCategory());
          System.out.println(linkform.getDesc());
          System.out.println(linkform.getTags());
          System.out.println(linkform.getDate());
          System.out.println(linkform.getTime());
  
          sessionFactory.getCurrentSession().saveOrUpdate(linkform);
      }
  
  }
  </code></pre>
  
  <p>Println statements are working fine, when i dont insert into database.</p>
  
  <pre><code>sessionFactory.getCurrentSession().saveOrUpdate(linkform);
  </code></pre>
  
  <p>When i use this statement in above program i am getting error.</p>
  
  <p>My Bean Class is</p>
  
  <pre><code>package com.killerlinks.model;
  
  import java.io.Serializable;
  
  import javax.persistence.Column;
  import javax.persistence.Entity;
  import javax.persistence.GeneratedValue;
  import javax.persistence.GenerationType;
  import javax.persistence.Id;
  import javax.persistence.Table;
  
  @Entity
      @Table(name="links")
      public class Linkform implements Serializable
      {
      /**
       * 
       */
      private static final long serialVersionUID = 1L;
      @Id
      @GeneratedValue(strategy=GenerationType.AUTO)
      @Column(name="id")
      private Long id;
      @Column(name="tittle")
      private String tittle;
      @Column(name="desc")
      private String desc;
      @Column(name="url")
      private String url;
      @Column(name="category")
      private String category;
      @Column(name="xdate")
      private String date;
      @Column(name="xtime")
      private String time;
      @Column(name="tags")
      private String tags;
  
      public Long getId() {
          return id;
      }
      public void setId(Long id) {
          this.id = id;
      }
      public String getTittle() {
          return tittle;
      }
      public void setTittle(String tittle) {
          this.tittle = tittle;
      }
      public String getDesc() {
          return desc;
      }
      public void setDesc(String desc) {
          this.desc = desc;
      }
      public String getUrl() {
          return url;
      }
      public void setUrl(String url) {
          this.url = url;
      }
      public String getCategory() {
          return category;
      }
      public void setCategory(String category) {
          this.category = category;
      }
      public String getDate() {
          return date;
      }
      public void setDate(String date) {
          this.date = date;
      }
      public String getTime() {
          return time;
      }
      public void setTime(String time) {
          this.time = time;
      }
      public String getTags() {
          return tags;
      }
      public void setTags(String tags) {
          this.tags = tags;
      }
  
      @Override
      public String toString()
      {
          return "Linkform [tittle=" + tittle + ", url=" + url + ", category="+ category +", tags="+ tags +", desc="+ desc +"]";
      }
  }
  </code></pre>
  
  <p>Please help me out to fix this bug.</p>