zoukankan      html  css  js  c++  java
  • hibernate4 分页报只进结果集不支持请求的操作的解决办法

    分页代码

    /**
    * 分页
    * @Title: paqingBypages 
    * @Description: TODO
    * @param @param hql
    * @param @param args
    * @param @param showpage
    * @param @param count
    * @param @return 
    * @throws
    */
    public List paqingBypages(String hql, List args, int showpage, int count) {
    Session session=GetSession.getsession();
    List list=null;
    Transaction tx=null;
    try {
    tx=session.beginTransaction();
    Query query=session.createQuery(hql);
    if(args!=null){
    for(int i=0;i<args.size();i++){
    query.setParameter(i, args.get(i));
    }
    }
    int firstResultIndex=(showpage-1)*count;
    query.setFirstResult(firstResultIndex);
    query.setMaxResults(count);
    list=query.list();
    tx.commit();
    } catch (HibernateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    tx.rollback();
    }
    finally{
    session.close();
    }
    
    return list;
    }
    
    异常
    
    org.hibernate.exception.GenericJDBCException: 只进结果集不支持请求的操作。
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
    at org.hibernate.engine.jdbc.internal.proxy.AbstractResultSetProxyHandler.continueInvocation(AbstractResultSetProxyHandler.java:108)
    at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
    at $Proxy6.absolute(Unknown Source)
    at org.hibernate.loader.Loader.advance(Loader.java:1640)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1966)
    at org.hibernate.loader.Loader.doQuery(Loader.java:829)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289)
    at org.hibernate.loader.Loader.doList(Loader.java:2447)
    at org.hibernate.loader.Loader.doList(Loader.java:2433)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2263)
    at org.hibernate.loader.Loader.list(Loader.java:2258)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:196)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1161)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
    at com.qingmou.dao.impl.DaoSupeortImpl.paqingBypages(DaoSupeortImpl.java:245)
    at com.qingmou.test.Test.main(Test.java:39)
    Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作。
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.throwNotScrollable(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetIsScrollable(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.absolute(Unknown Source)
    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.hibernate.engine.jdbc.internal.proxy.AbstractResultSetProxyHandler.continueInvocation(AbstractResultSetProxyHandler.java:104)
    ... 17 more

    我测试以上在hibernate 4.X以上都会报这个问题.

    在网上找了几天没找到.有很多人说什么代码错等等的.代码没错.

    解决办法

    在hibernate.cfg.xml里配置

    <property name="jdbc.use_scrollable_resultset">false</property>

    或者在

    hibernate.properties配置

    hibernate.jdbc.use_scrollable_resultset=false

    说明:配置结果集是否可滚动.

    问题已经解决

    https://github.com/zuolg
  • 相关阅读:
    [LeetCode] 134. Gas Station Java
    [LeetCode] 22. Best Time to Buy and Sell Stock II Java
    [LeetCode] 55. Jump Game Java
    [LeetCode] 264. Ugly Number II Java
    [LeetCode] 331. Verify Preorder Serialization of a Binary Tree Java
    [LeetCode] 232. Implement Queue using Stacks Java
    java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory的解决办法
    Linux centos 连接网络
    MyEclipse默认编码为GBK,修改为UTF8的方法
    表单
  • 原文地址:https://www.cnblogs.com/xzuo/p/2577339.html
Copyright © 2011-2022 走看看