BATCH-848: improved the paging support
This commit is contained in:
@@ -94,7 +94,10 @@ public class IbatisPagingItemReader<T> extends AbstractPagingItemReader<T> {
|
||||
if (parameterValues != null) {
|
||||
parameters.putAll(parameterValues);
|
||||
}
|
||||
results = sqlMapClientTemplate.queryForList(queryId, parameters, (page * pageSize), pageSize);
|
||||
parameters.put("_page", page);
|
||||
parameters.put("_pagesize", pageSize);
|
||||
parameters.put("_skiprows", page * pageSize);
|
||||
results = sqlMapClientTemplate.queryForList(queryId, parameters);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -21,7 +21,7 @@ public class IbatisPagingItemReaderCommonTests extends CommonDatabaseItemStreamI
|
||||
SqlMapClient sqlMapClient = createSqlMapClient();
|
||||
|
||||
IbatisPagingItemReader reader = new IbatisPagingItemReader();
|
||||
reader.setQueryId("getAllFoos");
|
||||
reader.setQueryId("getPagedFoos");
|
||||
reader.setSqlMapClient(sqlMapClient);
|
||||
reader.setSaveState(true);
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ public class IbatisPagingItemReaderParameterTests extends AbstractPagingItemRead
|
||||
SqlMapClient sqlMapClient = createSqlMapClient();
|
||||
|
||||
IbatisPagingItemReader reader = new IbatisPagingItemReader();
|
||||
reader.setQueryId("getFoos3AndUp");
|
||||
reader.setQueryId("getPagedFoos3AndUp");
|
||||
reader.setParameterValues(Collections.<String, Object>singletonMap("limit", 3));
|
||||
reader.setSqlMapClient(sqlMapClient);
|
||||
reader.setSaveState(true);
|
||||
|
||||
@@ -22,6 +22,14 @@
|
||||
select ID, NAME, VALUE from T_FOOS
|
||||
</select>
|
||||
|
||||
<select id="getPagedFoos" resultMap="fooResult">
|
||||
select LIMIT #_skiprows# #_pagesize# ID, NAME, VALUE from T_FOOS order by ID
|
||||
</select>
|
||||
|
||||
<select id="getPagedFoos3AndUp" resultMap="fooResult">
|
||||
select LIMIT #_skiprows# #_pagesize# ID, NAME, VALUE from T_FOOS where VALUE >= #limit# order by ID
|
||||
</select>
|
||||
|
||||
<select id="getFoos3AndUp" resultMap="fooResult">
|
||||
select ID, NAME, VALUE from T_FOOS where VALUE >= #limit#
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user