@Override protected void pointToEmptyInput(ItemReader<Foo> tested) throws Exception { JdbcPagingItemReader<Foo> reader = (JdbcPagingItemReader<Foo>) tested; reader.close(); reader.setDataSource(dataSource); HsqlPagingQueryProvider queryProvider = new HsqlPagingQueryProvider(); queryProvider.setSelectClause("select ID, NAME, VALUE"); queryProvider.setFromClause("from T_FOOS"); queryProvider.setWhereClause("where ID = -1"); Map<String, Order> sortKeys = new LinkedHashMap<>(); sortKeys.put("ID", Order.ASCENDING); queryProvider.setSortKeys(sortKeys); reader.setQueryProvider(queryProvider); reader.setPageSize(3); reader.afterPropertiesSet(); reader.open(new ExecutionContext()); }
reader.open(new ExecutionContext()); Foo item1 = reader.read(); assertNull(reader.read());
@Test public void testBasicConfiguration() throws Exception { Map<String, Order> sortKeys = new HashMap<>(1); sortKeys.put("ID", Order.DESCENDING); JdbcPagingItemReader<Foo> reader = new JdbcPagingItemReaderBuilder<Foo>() .name("fooReader") .currentItemCount(1) .dataSource(this.dataSource) .maxItemCount(2) .selectClause("SELECT ID, FIRST, SECOND, THIRD") .fromClause("FOO") .sortKeys(sortKeys) .rowMapper((rs, rowNum) -> new Foo(rs.getInt(1), rs.getInt(2), rs.getString(3), rs.getString(4))) .build(); reader.afterPropertiesSet(); reader.open(new ExecutionContext()); Foo item1 = reader.read(); assertNull(reader.read()); assertEquals(3, item1.getId()); assertEquals(10, item1.getFirst()); assertEquals("11", item1.getSecond()); assertEquals("12", item1.getThird()); }
reader.open(new ExecutionContext()); Foo item1 = reader.read(); Foo item2 = reader.read();
reader.open(executionContext); Foo item1 = reader.read(); assertNull(reader.read());
reader.open(executionContext); Foo item1 = reader.read(); Foo item2 = reader.read();