WARN - SQL Error: 17010, SQLState: null
ERROR - 关闭的 Resultset: next
WARN - Unhandled Exception thrown: class org.hibernate.exception.GenericJDBCExceptionpublic List findRP(int pageSize, int startRow,String sql) {
//Transaction tx = null;
List list=null;
try{
Query query = this.getSessionFactory().openSession().createQuery(sql);
query.setFirstResult(startRow);
query.setMaxResults(pageSize);
list=query.list();
System.out.println("@@@@@@@@@"+list);
//tx.commit();
} catch (RuntimeException e){
e.printStackTrace();   
        }
return list; 
}
public int counter(String sql) {
    int counter=0;
counter = ((Integer)this.getHibernateTemplate().iterate(sql).next()).intValue(); 
    return counter;

}

解决方案 »

  1.   

    public ActionForward findPrP(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    RewardsPunishmentsForm rewardsPunishmentsForm = (RewardsPunishmentsForm) form;


    String psnlIdd=(String)request.getParameter("psnlIdd");
    String psnlName=(String)request.getParameter("psnlName");
    System.out.println("*********"+psnlIdd+"^^^^^^^^"+psnlName);
    String sql=null;
    String sql1=" where userName='"+psnlName+"'";
    String sql2=" where personalid='"+psnlIdd+"'";
    //String sqll="select ui.username, rp.* from Userinfo ui,rewardpunish rp where ui.personalid=rp.personalid ";
    String sqll="from UserInfoRp";
    String sqql="select count(*) from UserInfoRp";
    if(psnlIdd.equals("") && psnlName.equals("")){
    sql=sqll;

    }
    else if(psnlIdd.equals("")){
    sql=sqll+sql1;
    sqql=sqql+sql1;
    }else{
    sql=sqll+sql2;
    sqql=sqql+sql2;
    }
    System.out.println("!!!!!!!!!!"+sql);
    System.out.println("!!&&&&&!!!!"+sql);
    int counter=(Integer)getHunter().counter(sqql);
    Pager page=PageHelp.getPager(request,counter);
    List findPrP=(List)getHunter().findRP(page.getPageSize(),page.getStartRow(),sql);
    request.setAttribute("list", findPrP); 
    request.setAttribute("page", page);
    return mapping.findForward("show_psnlRp"); }
      

  2.   


    query.setFirstResult(startRow);这里出的错吗?
    是用SQL查询的?那应该用createSqlQuery(sql)吧
      

  3.   

    不是那里,那里没啥问题好像……是迭代返回不了值。public int counter(String sql) { 
        int counter=0; 
    counter = ((Integer)this.getHibernateTemplate().iterate(sql).next()).intValue(); 
        return counter; } 
      

  4.   

    exception javax.servlet.ServletException: could not get next iterator result
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    root cause org.hibernate.exception.GenericJDBCException: could not get next iterator result
    org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
    org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
    org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
    org.hibernate.impl.IteratorImpl.next(IteratorImpl.java:124)
    com.tom.dao.impl.RewardsPunishmentsDao.counter(RewardsPunishmentsDao.java:48)
    com.tom.hunterDao.Hunters.counter(Hunters.java:42)
    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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
    org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:165)
    $Proxy3.counter(Unknown Source)
    com.tom.struts.action.RewardsPunishmentsAction.findPrP(RewardsPunishmentsAction.java:132)
    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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
    org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
    org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      

  5.   

    其中:com.tom.hunterDao.Hunters.counter(Hunters.java:42) 指向的是public int counter(String sql)
      

  6.   

    我猜你没有启动事务,而且使用了lazy的获取