@Test public void testConfigurationNoSaveState() throws Exception { Map<String, Object> parameters = new HashMap<>(); parameters.put("value", 2); JpaPagingItemReader<Foo> reader = new JpaPagingItemReaderBuilder<Foo>() .name("fooReader") .entityManagerFactory(this.entityManagerFactory) .queryString("select f from Foo f where f.id > :value") .parameterValues(parameters) .saveState(false) .build(); reader.afterPropertiesSet(); ExecutionContext executionContext = new ExecutionContext(); reader.open(executionContext); int i = 0; while(reader.read() != null) { i++; } reader.update(executionContext); reader.close(); assertEquals(3, i); assertEquals(0, executionContext.size()); }
@Test public void testConfigurationQueryProvider() throws Exception { JpaNativeQueryProvider<Foo> provider = new JpaNativeQueryProvider<>(); provider.setEntityClass(Foo.class); provider.setSqlQuery("select * from T_FOOS"); provider.afterPropertiesSet(); JpaPagingItemReader<Foo> reader = new JpaPagingItemReaderBuilder<Foo>() .name("fooReader") .entityManagerFactory(this.entityManagerFactory) .queryProvider(provider) .build(); reader.afterPropertiesSet(); ExecutionContext executionContext = new ExecutionContext(); reader.open(executionContext); int i = 0; while(reader.read() != null) { i++; } reader.update(executionContext); reader.close(); assertEquals(5, i); }
@Test public void testConfiguration() throws Exception { JpaPagingItemReader<Foo> reader = new JpaPagingItemReaderBuilder<Foo>() .name("fooReader") .entityManagerFactory(this.entityManagerFactory) .currentItemCount(2) .maxItemCount(4) .pageSize(5) .transacted(false) .queryString("select f from Foo f ") .build(); reader.afterPropertiesSet(); ExecutionContext executionContext = new ExecutionContext(); reader.open(executionContext); Foo item1 = reader.read(); Foo item2 = reader.read(); assertNull(reader.read()); reader.update(executionContext); reader.close(); assertEquals(3, item1.getId()); assertEquals("bar3", item1.getName()); assertEquals(3, item1.getValue()); assertEquals(4, item2.getId()); assertEquals("bar4", item2.getName()); assertEquals(4, item2.getValue()); assertEquals(2, executionContext.size()); assertEquals(5, ReflectionTestUtils.getField(reader, "pageSize")); assertFalse((Boolean) ReflectionTestUtils.getField(reader, "transacted")); }