這是我要分頁查詢的代碼
String hql = "from User u ORDER BY u.id";
Session session = sessionFactory.openSession();
Query query = session.createQuery(hql);
query.setFirstResult(1);
query.setMaxResults(7);
我用的是hibernate4,在hibernate.cfg.xml里加入這樣一句話
<property name="jdbc.use_scrollable_resultset">false</property>
沒問題,不會報錯。
但是當我在spring里中加入這個的時候問題就來了,applicationContext.xml里是這么寫的
<property name="hibernateProperties">
<props>
<prop key="jdbc.use_scrollable_resultset">false</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql" >true</prop>
<!-- <prop key="hibernate.format_sql">true</prop> -->
</props>
</property>
這個時候再做查詢的時候錯誤就是
[http-80-3] WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: null
[http-80-3] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 只進結果集不支持請求的操作。
[http-80-2] WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: null
[http-80-2] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 只進結果集不支持請求的操作。
好像spring中沒有使用到我這個配置,具體是什么問題還請大神解答。
13 个解决方案
只進結果集不支持請求的操作--是不是事務配置的問題,或者將上面的<property name="jdbc.use_scrollable_resultset">false</property>去掉試試
query.setFirstResult(1);//改為從0開始看看。
query.setMaxResults(7);
最好先看有多少條,問題很好排查
請問你用這個框架感覺怎么樣,我做多對一插入時候經常報錯null id in com.mcy.bean.ChargeBean entry (don't flush the Session after an exception occurs)
<prop key="
hibernate.jdbc.use_scrollable_resultset">false</prop>敢問是這個沒加嗎