diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/IbatisPagingItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/IbatisPagingItemReader.java index bf8426d48..4a99a7f51 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/IbatisPagingItemReader.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/IbatisPagingItemReader.java @@ -94,7 +94,10 @@ public class IbatisPagingItemReader extends AbstractPagingItemReader { 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 diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java index ba0e4b529..4f4e8573d 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java @@ -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); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderParameterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderParameterTests.java index e357c30bd..6fb89eb70 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderParameterTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderParameterTests.java @@ -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.singletonMap("limit", 3)); reader.setSqlMapClient(sqlMapClient); reader.setSaveState(true); diff --git a/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/database/ibatis-foo.xml b/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/database/ibatis-foo.xml index bceca92d4..d418da081 100644 --- a/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/database/ibatis-foo.xml +++ b/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/database/ibatis-foo.xml @@ -22,6 +22,14 @@ select ID, NAME, VALUE from T_FOOS + + + +