我下面的这个类时有时无的报下面的错 貌似问题处在delete上   只要多次报错 tomcat就会停止响应 严重: 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:246)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:146)
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.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:368)
at org.springframework.orm.hibernate3.HibernateTemplate.delete(HibernateTemplate.java:779)
at org.springframework.orm.hibernate3.HibernateTemplate.delete(HibernateTemplate.java:775)
at com.office.daoimpl.LoginLogDaoImpl.deletLog(LoginLogDaoImpl.java:49)
at com.office.serviceimpl.LoginLogServiceImpl.deletLog(LoginLogServiceImpl.java:31)
at com.office.struts.UserLogAction.userTest(UserLogAction.java:90)
package com.office.daoimpl;import java.util.List;import org.hibernate.Query;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.office.dao.LoginLogDao;
import com.office.vo.LoginIog;public class LoginLogDaoImpl  extends HibernateDaoSupport implements LoginLogDao {
@SuppressWarnings("unchecked")

    protected int start=0;
protected int end=10; public void addLog(LoginIog log) {
// TODO Auto-generated method stub
long timestart=System.currentTimeMillis();
for(int i=0;i<=40;i++){
    try {
this.getHibernateTemplate().save(log);
} catch (DataAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
         
  System.out.println(System.currentTimeMillis()-timestart);
   
 start=0;
 end=10;
} @SuppressWarnings("unchecked")
public void deletLog(List  loginid){
// TODO Auto-generated method stub
long timestart=System.currentTimeMillis();
       start=0;
       end=10;
      for(int i=loginid.size()-1;i>=0;i--){
              Object obj=loginid.get(i);
              List<LoginIog> list=this.getHibernateTemplate().find("from LoginIog where LoginId=?" , obj);
              if(list.size()>0){
              LoginIog loginlog=list.get(0);
             this.getHibernateTemplate().delete(loginlog);
              }
              else{
                  System.out.println(list.size());
               
              }

                }
} @SuppressWarnings("unchecked")
public  List  findAllLog() {
    System.out.println(start+"---"+end);
    String hql="from LoginIog order by LoginId desc";
            Query  q=  this.getSession().createQuery(hql);
            q.setFirstResult(start);
            q.setMaxResults(end);
            this.getSession().close();
            List list=q.list();System.out.println(list.size());
            start+=10;
            end+=10;
            System.out.println(start+"---"+end);
    return list ;
}

public List  findByInDate(String startdate,String enddate){


      List list=this.getHibernateTemplate().find("from LoginIog where LoginTime between'"+startdate+"' and '"+enddate+"'");
      return list; 

}
  }