List of usage examples for org.springframework.batch.item.database.support AbstractSqlPagingQueryProvider setSelectClause
public void setSelectClause(String selectClause)
From source file:org.springframework.batch.item.database.JdbcPagingQueryIntegrationTests.java
@Test public void testQueryFromStartWithGroupBy() throws Exception { AbstractSqlPagingQueryProvider queryProvider = (AbstractSqlPagingQueryProvider) getPagingQueryProvider(); Map<String, Order> sortKeys = new LinkedHashMap<String, Order>(); sortKeys.put("NAME", Order.ASCENDING); sortKeys.put("CODE", Order.DESCENDING); queryProvider.setSortKeys(sortKeys); queryProvider.setSelectClause("select NAME, CODE, sum(VALUE)"); queryProvider.setGroupClause("NAME, CODE"); int count = 0; int total = 5; List<Map<String, Object>> list = jdbcTemplate.queryForList(queryProvider.generateFirstPageQuery(pageSize)); logger.debug("First page result: " + list); assertEquals(pageSize, list.size()); count += pageSize;/*from w w w.j a v a2 s. c om*/ Map<String, Object> oldValues = null; while (count < total) { Map<String, Object> startAfterValues = getStartAfterValues(queryProvider, list); assertNotSame(oldValues, startAfterValues); list = jdbcTemplate.queryForList(queryProvider.generateRemainingPagesQuery(pageSize), getParameterList(null, startAfterValues).toArray()); count += list.size(); if (list.size() < pageSize) { assertEquals(1, list.size()); } else { assertEquals(pageSize, list.size()); } oldValues = startAfterValues; } assertEquals(total, count); }