我在Spring批處理作業中使用了分頁Jdbc閱讀器。我有一個表16行,我期待看到所有的行,但下面的配置僅返回10Spring批處理JdbcPagingItemReader - 當定義pageSize/fetchSize時不支持sortKey
<bean id="pagingQuery" class="org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="selectClause" value="select policy_number,val_date,name,sequence,amount,rate,frequency,start_date,end_date,basis"/>
<property name="fromClause" value="from MyTable"/>
<property name="sortKey" value="policy_number"/>
<property name="whereClause" value="load_id=:jobid"/>
</bean>
<bean id="tableReader"
class="org.springframework.batch.item.database.JdbcPagingItemReader"
scope="step">
<property name="dataSource" ref="myDataSource"/>
<property name="queryProvider" ref="pagingQuery"/>
<property name="parameterValues">
<map>
<entry key="jobid" value="1"/>
</map>
</property>
<property name="pageSize" value="10"/>
<property name="fetchSize" value="10"/>
<property name="rowMapper">
<bean class="org.springframework.jdbc.core.ColumnMapRowMapper"/>
</property>
</bean>
不只是提高分頁的值/獲取大小以上16是有另一種方式配置這個閱讀器返回所有行?
你試過沒有設置FETCHSIZE;看了幾分鐘的代碼,並可能工作 – user1121883
唉 - 我試過(fetchSize默認爲-1),但問題保持不變 – emeraldjava
只是一個問題。爲什麼你需要一個可分頁的閱讀器,如果你需要一個單一的閱讀所有行?使用具有非常高的提交間隔(或自定義CompletionPolicy)的標準jdbc閱讀器 –