title: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
body: <p>I am using struts and hibernate. I have a parent and child relation using set in hbm.
  In the action I am using <code>session.saveOrUpdate()</code> method to save but while saving it is showing the below error. Can anyone help regardng this with explanation where I made the mistake?</p>
  
  <p>Here is my hbm.file</p>
  
  <pre><code>&lt;?xml version="1.0"?&gt;
  &lt;!DOCTYPE hibernate-mapping PUBLIC 
  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;
  
  &lt;hibernate-mapping&gt;
  
   &lt;class name="com.model.cargo" table="cargo"&gt;
    &lt;id name="id" column="id" type="java.lang.Long"&gt;
     &lt;generator class="increment" /&gt;
    &lt;/id&gt;
    &lt;property name="cname" column="cname" /&gt;
    &lt;property name="cdate" column="cdate" /&gt;
    &lt;property name="csource" column="csource" /&gt;
    &lt;property name="cdestination" column="cdestination" /&gt;
    &lt;property name="create" column="createby" /&gt;
    &lt;property name="status" column="status" /&gt;
  
    &lt;set name="itemList" table="item" inverse="true"
     cascade="all-delete-orphan"&gt;
     &lt;key&gt;
      &lt;column name="id" /&gt;
     &lt;/key&gt;
     &lt;one-to-many class="com.model.Item" /&gt;
    &lt;/set&gt;
   &lt;/class&gt;
  
   &lt;class name="com.model.Item" table="item"&gt;
    &lt;id name="itemid" column="itemid" type="java.lang.Long"&gt;
     &lt;generator class="increment" /&gt;
    &lt;/id&gt;
    &lt;property name="itemName" column="itemname" /&gt;
    &lt;property name="weight" column="weight" /&gt;
    &lt;many-to-one class="com.model.cargo" name="cargo"
     column="id" /&gt;
   &lt;/class&gt;
  &lt;/hibernate-mapping&gt;
  </code></pre>
  
  <p>My action </p>
  
  <pre><code>package com.action;
  
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.HashSet;
  import java.util.Iterator;
  import java.util.List;
  import java.util.Set;
  
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import javax.servlet.http.HttpSession;
  
  import org.apache.commons.beanutils.BeanUtils;
  
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.action.ActionForward;
  import org.apache.struts.action.ActionMapping;
  import org.apache.struts.actions.DispatchAction;
  import org.hibernate.Query;
  import org.hibernate.Session;
  import org.hibernate.SessionFactory;
  import org.hibernate.Transaction;
  import com.plugin.HibernatePlugIn;
  import com.form.cargoForm;
  import com.model.cargo;
  import com.model.Item;
  
  
  public class CargoAction extends DispatchAction {
  
  
   public ActionForward add(ActionMapping mapping, ActionForm form,
     HttpServletRequest request, HttpServletResponse response)
     throws Exception {
  
    if (log.isDebugEnabled()) {
     log.debug("Entering Master add method");
    }
  
    try {
  
     cargoForm cargoForm = (cargoForm) form;
     //System.out.println("ID" + cargoForm.getId());
     cargo cargo = new cargo();
     System.out.println("in cargo Action");
     // copy customerform to model
     cargoForm.reset(mapping, request);
     BeanUtils.copyProperties(cargo, cargoForm);
     cargoForm.reset(mapping, request);
    // cargoForm.setInputParam("new");
     // updateFormBean(mapping, request, cargoForm);
  
    }
  
    catch (Exception ex) {
     ex.printStackTrace();
     return mapping.findForward("failure");
    }
  
    return mapping.findForward("success1");
   }
  
   public ActionForward save(ActionMapping mapping, ActionForm form,
     HttpServletRequest request, HttpServletResponse response)
     throws Exception {
  
    SessionFactory sessionFactory=null;
    Session session =null;
    System.out.println("in cargo Action");
    try{
    sessionFactory = (SessionFactory) servlet
      .getServletContext().getAttribute(HibernatePlugIn.KEY_NAME);  
    session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
  
    cargoForm carForm = (cargoForm) form;
  
  
    cargo cargo = new cargo();
  
    System.out.println("in cargo Action");
  
    BeanUtils.copyProperties(cargo,carForm);
    System.out.println("id"+ carForm.getId()); 
    System.out.println("item id"+ carForm.getItemid()); 
    Set itemset = carForm.getItemDtl();
  
      System.out.println("size"+itemset.size()); 
      Iterator iterator =itemset.iterator();   
      while(iterator.hasNext()) { 
       Item it = (Item)iterator.next();
      System.out.println("name"+it.getItemName()); //log.debug("HERE");
     it.setCargo(cargo); } 
  
    cargo.setItemList(itemset);
    System.out.println("size"+ itemset.size()); 
    session.saveOrUpdate("cargo",cargo);
    tx.commit();
    }catch(Exception e){
     e.printStackTrace();
    }
    return mapping.findForward("success");
  
   }
  
   public ActionForward search(ActionMapping mapping, ActionForm form,
     HttpServletRequest request, HttpServletResponse response)
     throws Exception {
    System.out.println("in cargo search Action");
    SessionFactory sessionFactory = (SessionFactory) servlet
      .getServletContext().getAttribute(HibernatePlugIn.KEY_NAME);
    HttpSession session1 = request.getSession();
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    cargoForm cargoform = (cargoForm) form;
    // System.out.println("Name"+cargoForm.getName());
    cargo cargo = new cargo();
    System.out.println("in cargo search Action");
    // copy customerform to model
    BeanUtils.copyProperties(cargo, cargoform);
    String name;
    String status;
    String createby;
  
    name = cargo.getCname();
    status = cargo.getStatus();
    createby = cargo.getCreate();
    System.out.println("Name..." + name);
    System.out.println("status..." + status);
    System.out.println("createby..." + createby);
    try {
     if ((name.equals("")) &amp;&amp; (createby.equals(""))
       &amp;&amp; (status.equals("")))
      return mapping.findForward("failure");
     String SQL_QUERY = "from cargo c where c.cname=:name or c.status=:status or c.create=:createby";
     Query query = session.createQuery(SQL_QUERY);
     query.setParameter("name", name);
     query.setParameter("status", status);
     query.setParameter("createby", createby);
     ArrayList al = new ArrayList();
     for (Iterator i = query.iterate(); i.hasNext();) {
      cargo cargo1 = (cargo) i.next();
      al.add(cargo1);
      System.out.println("Cargo ID is:" + cargo1.getId());
     }
     System.out.println("Cargo list is:" + al.size());
     session1.setAttribute("clist", al);
    } catch (Exception e) {
     e.printStackTrace();
     return mapping.findForward("failure");
    }
    System.out.println("search Cargo list is success");
  
    return mapping.findForward("success");
   }
  
  
  
  
   public ActionForward edit(ActionMapping mapping, ActionForm form,
     HttpServletRequest request, HttpServletResponse response)
     throws Exception {
    SessionFactory sessionFactory=null;
    Session session =null;
    if (log.isDebugEnabled()) {
     log.debug("Entering Master Edit method");
    }
  
    try {
     sessionFactory = (SessionFactory) servlet
       .getServletContext().getAttribute(HibernatePlugIn.KEY_NAME);
     session = sessionFactory.openSession();
     Transaction transaction=session.beginTransaction();
     cargoForm carForm = (cargoForm) form;
     // System.out.println(carForm.getStatus());
     // System.out.println(carForm.getCreate());
     cargo cargo = new cargo();
     BeanUtils.copyProperties(cargo, carForm);
        System.out.println("In Cargo Edit "+cargo.getId());
        String qstring = "from cargo c where c.id=:id";
     Query query = session.createQuery(qstring);
     query.setParameter("id", cargo.getId());
     ArrayList all = new ArrayList();
     cargo c = (cargo) query.iterate().next();
  
     System.out.println("Edit Cargo list " + all.size()); 
  
  
       Set purchaseArray = new HashSet();
             System.out.println("Edit"+c.getItemList().size());
             carForm.setItemDtl(purchaseArray);
             BeanUtils.copyProperties(carForm,c);
             // transaction.commit();
              session.flush();
    } catch (Exception e) {
     e.printStackTrace();
     return mapping.findForward("failure");
    }
  
    // return a forward to edit forward
    System.out.println("Edit Cargo list is success");
    return mapping.findForward("succ");
   }
  
   public ActionForward delete(ActionMapping mapping, ActionForm form,
     HttpServletRequest request, HttpServletResponse response)
     throws Exception {
  
    try {
     SessionFactory sessionFactory = (SessionFactory) servlet
       .getServletContext().getAttribute(HibernatePlugIn.KEY_NAME);
     Session session = sessionFactory.openSession();
     Transaction tx = session.beginTransaction();
     cargoForm carForm = (cargoForm) form;
     // System.out.println(carForm.getStatus());
     // System.out.println(carForm.getCreate());
     cargo cargo = new cargo();
     BeanUtils.copyProperties(cargo, carForm);
        System.out.println("In Cargo Delete "+cargo.getId());
     //String qstring = "delete from cargo c where c.id=:id";
     //Query query = session.createQuery(qstring);
     session.delete("cargo",cargo);
       // session.delete(cargo);
       // session.flush();
     //query.setParameter("id", cargo.getId());
     //int row=query.executeUpdate();
     //System.out.println("deleted row"+row);
     tx.commit();
  
    } catch (Exception e) {
     e.printStackTrace();
     return mapping.findForward("failure");
    }
    // return a forward to edit forward
    System.out.println("Deleted success");
    return mapping.findForward("succes");
   }
  
  }
  </code></pre>
  
  <p>My parent model</p>
  
  <pre><code>package com.model;
  
  import java.util.HashSet;
  import java.util.Set;
  
  public class cargo {
  
   private Long id;
   private String cname;
   private String cdate;
   private String csource;
   private String cdestination;
   private String create;
   private String status;
  
   private Set itemList = new HashSet();
  
   public Long getId() {
    return id;
   }
  
   public void setId(Long id) {
    this.id = id;
   }
  
   public String getCname() {
    return cname;
   }
  
   public void setCname(String cname) {
    this.cname = cname;
   }
  
   public String getCdate() {
    return cdate;
   }
  
   public void setCdate(String cdate) {
    this.cdate = cdate;
   }
  
   public String getCsource() {
    return csource;
   }
  
   public void setCsource(String csource) {
    this.csource = csource;
   }
  
   public String getCdestination() {
    return cdestination;
   }
  
   public void setCdestination(String cdestination) {
    this.cdestination = cdestination;
   }
  
   public String getCreate() {
    return create;
   }
  
   public void setCreate(String create) {
    this.create = create;
   }
  
   public String getStatus() {
    return status;
   }
  
   public void setStatus(String status) {
    this.status = status;
   }
  
   public Set getItemList() {
    return itemList;
   }
  
   public void setItemList(Set itemList) {
    this.itemList = itemList;
   }
  
  
  }  
  </code></pre>
  
  <p>My child model   </p>
  
  <pre><code>package com.model;
  
  public class Item{
  
   private Long itemid;
   private String itemName;
   private String weight;
   private cargo cargo;
  
   public Long getItemid() {
    return itemid;
   }
   public void setItemid(Long itemid) {
    this.itemid = itemid;
   }
   public String getItemName() {
    return itemName;
   }
   public void setItemName(String itemName) {
    this.itemName = itemName;
   }
   public String getWeight() {
    return weight;
   }
   public void setWeight(String weight) {
    this.weight = weight;
   }
   public cargo getCargo() {
    return cargo;
   }
   public void setCargo(cargo cargo) {
    this.cargo = cargo;
   }
  
  
  } 
  </code></pre>
  
  <p>And my form</p>
  
  <pre><code>package com.form;
  
  import java.util.HashSet;
  import java.util.Set;
  
  import javax.servlet.http.HttpServletRequest;
  
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.action.ActionMapping;
  
  import com.model.Item;
  
  public class cargoForm extends ActionForm {
   private Long id;
   private String cname;
   private String cdate;
   private String csource;
   private String cdestination;
   private String create;
   private String status;
  
   private Long[] itemid;
   private String[] itemName;
   private String[] weight;
  
   private Set itemset = new HashSet();
  
   public Long getId() {
    return id;
   }
  
   public void setId(Long id) {
    this.id = id;
   }
  
   public String getCname() {
    return cname;
   }
  
   public void setCname(String cname) {
    this.cname = cname;
   }
  
   public String getCdate() {
    return cdate;
   }
  
   public void setCdate(String cdate) {
    this.cdate = cdate;
   }
  
   public String getCsource() {
    return csource;
   }
  
   public void setCsource(String csource) {
    this.csource = csource;
   }
  
   public String getCdestination() {
    return cdestination;
   }
  
   public void setCdestination(String cdestination) {
    this.cdestination = cdestination;
   }
  
   public String getCreate() {
    return create;
   }
  
   public void setCreate(String create) {
    this.create = create;
   }
  
   public String getStatus() {
    return status;
   }
  
   public void setStatus(String status) {
    this.status = status;
   }
  
   public Long[] getItemid() {
    return itemid;
   }
  
   public void setItemid(Long[] itemid) {
    this.itemid = itemid;
   }
  
   public String[] getItemName() {
    return itemName;
   }
  
   public void setItemName(String[] itemName) {
    this.itemName = itemName;
   }
  
   public String[] getWeight() {
    return weight;
   }
  
   public void setWeight(String[] weight) {
    this.weight = weight;
   }
  
   /*
    * public Set getItemset() { return itemset; }
    * 
    * public void setItemset(Set itemset) { this.itemset = itemset; }
    */
   public Set getItemDtl() {
    if (itemid != null) {
     itemset = new HashSet();
     System.out.println("cargadd form" + itemid);
     for (int i = 0; i &lt; itemid.length; i++) {
      Item it = new Item();
      // it.setItemId(itemId[i]);
      it.setItemName(itemName[i]);
      System.out.println("cargadd form" + itemName[i]);
      it.setWeight(weight[i]);
  
      itemset.add(it);
      System.out.println("cargadd form" + itemset.size());
     }
    }
    return itemset;
   }
  
   public void setItemDtl(Set itemset) {
    System.out.println("cargadd form" + itemset.size());
    this.itemset = itemset;
    System.out.println("cargadd form" + itemset.size());
   }
  
   public void reset(ActionMapping mapping, HttpServletRequest request) {
  
    cname = "";
    csource = "";
    cdestination = "";
    cdate = "";
    status = "";
    create = "";
  
   }
  
  }
  </code></pre>
  
  <p>The error:</p>
  
  <pre><code>Hibernate: select max(itemid) from item
  Hibernate: insert into item (itemname, weight, position, id, itemid) values (?, ?, ?, ?, ?)
  Hibernate: update cargo set name=?, date=?, source=?, destination=?, createby=?, status=? where id=?
  Oct 4, 2010 10:44:08 AM org.hibernate.jdbc.BatchingBatcher doExecuteBatch
  SEVERE: Exception executing batch: 
  org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
   at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
   at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46)
   at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:68)
   at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
   at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
   at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
   at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
   at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
   at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
   at com.action.CargoAction.save(CargoAction.java:125)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
   at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
   at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
   at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
   at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
   at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
   at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
   at java.lang.Thread.run(Unknown Source)
  Oct 4, 2010 10:44:08 AM org.hibernate.event.def.AbstractFlushingEventListener performExecutions
  SEVERE: Could not synchronize database state with session
  org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
   at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
   at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46)
   at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:68)
   at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
   at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
   at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
   at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
   at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
   at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
   at com.action.CargoAction.save(CargoAction.java:125)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
   at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
   at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
   at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
   at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
   at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
   at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
   at java.lang.Thread.run(Unknown Source)
  org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
   at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
   at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46)
   at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:68)
   at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
   at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
   at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
   at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
   at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
   at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
   at com.action.CargoAction.save(CargoAction.java:125)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
   at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
   at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
   at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
   at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
   at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
   at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
   at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
   at java.lang.Thread.run(Unknown Source)
  </code></pre>