JpaPagingItemReader<T> reader = new JpaPagingItemReader<>();
@Override protected AbstractPagingItemReader<Foo> getItemReader() throws Exception { String jpqlQuery = "select f from Foo f where f.value >= :limit"; JpaPagingItemReader<Foo> reader = new JpaPagingItemReader<>(); reader.setQueryString(jpqlQuery); reader.setParameterValues(Collections.<String, Object>singletonMap("limit", 2)); reader.setEntityManagerFactory(entityManagerFactory); reader.setPageSize(3); reader.afterPropertiesSet(); reader.setSaveState(true); return reader; }
@Override protected ItemReader<Foo> getItemReader() throws Exception { String jpqlQuery = "select f from Foo f"; JpaPagingItemReader<Foo> reader = new JpaPagingItemReader<>(); reader.setQueryString(jpqlQuery); reader.setEntityManagerFactory(entityManagerFactory); reader.setPageSize(3); reader.afterPropertiesSet(); reader.setSaveState(true); return reader; }
private JpaPagingItemReader<Foo> getItemReader() throws Exception { String jpqlQuery = "select f from Foo f"; JpaPagingItemReader<Foo> reader = new JpaPagingItemReader<>(); reader.setQueryString(jpqlQuery); reader.setEntityManagerFactory(entityManagerFactory); reader.setPageSize(PAGE_SIZE); reader.afterPropertiesSet(); reader.setSaveState(false); reader.open(new ExecutionContext()); return reader; }
private JpaPagingItemReader<Foo> getItemReader() throws Exception { String jpqlQuery = "select f from Foo f"; JpaPagingItemReader<Foo> reader = new JpaPagingItemReader<>(); reader.setQueryString(jpqlQuery); reader.setEntityManagerFactory(entityManagerFactory); reader.setPageSize(3); reader.afterPropertiesSet(); reader.setSaveState(false); reader.open(new ExecutionContext()); return reader; }
@Override protected AbstractPagingItemReader<Foo> getItemReader() throws Exception { String sqlQuery = "select * from T_FOOS where value >= :limit"; JpaPagingItemReader<Foo> reader = new JpaPagingItemReader<>(); //creating a native query provider as it would be created in configuration JpaNativeQueryProvider<Foo> queryProvider= new JpaNativeQueryProvider<>(); queryProvider.setSqlQuery(sqlQuery); queryProvider.setEntityClass(Foo.class); queryProvider.afterPropertiesSet(); reader.setParameterValues(Collections.<String, Object>singletonMap("limit", 2)); reader.setEntityManagerFactory(entityManagerFactory); reader.setPageSize(3); reader.setQueryProvider(queryProvider); reader.afterPropertiesSet(); reader.setSaveState(true); return reader; } }
@Override protected ItemReader<Foo> createItemReader() throws Exception { LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); factoryBean.setPersistenceUnitName("bar"); factoryBean.afterPropertiesSet(); EntityManagerFactory entityManagerFactory = factoryBean.getObject(); String jpqlQuery = "select f from Foo f where name like :name"; JpaPagingItemReader<Foo> inputSource = new JpaPagingItemReader<>(); inputSource.setQueryString(jpqlQuery); inputSource.setParameterValues(Collections.singletonMap("name", "bar%")); inputSource.setEntityManagerFactory(entityManagerFactory); inputSource.setPageSize(3); inputSource.afterPropertiesSet(); inputSource.setSaveState(true); return inputSource; }
@Bean(destroyMethod = "") // WARNING: org.springframework.batch.item.ItemStreamException: Error while closing item reader public ItemReader<Person> jpaItemReader(EntityManagerFactory entityManagerFactory) { JpaPagingItemReader<Person> reader = new JpaPagingItemReader<>(); reader.setEntityManagerFactory(entityManagerFactory); reader.setQueryString("select emp from Person emp"); return reader; }
@Bean @StepScope public JpaPagingItemReader<Customer> reader( @Value("#{jobParameters[mailHost]}") String mailHost) { Map<String, Object> paramMap = new HashMap<>(); paramMap.put("mailHost", "%@"+mailHost); JpaPagingItemReader<Customer> reader = new JpaPagingItemReader<>(); reader.setQueryString("SELECT c FROM Customer c where c.email like :mailHost"); reader.setParameterValues(paramMap); reader.setPageSize(CHUNK_SIZE); reader.setEntityManagerFactory(emf); return reader; }
@Bean @StepScope public JpaPagingItemReader<Store> reader ( @Value("#{jobParameters[address]}") String address) { Map<String, Object> parameters = new LinkedHashMap<>(); parameters.put("address", address+"%"); JpaPagingItemReader<Store> reader = new JpaPagingItemReader<>(); reader.setEntityManagerFactory(entityManagerFactory); reader.setQueryString("SELECT s FROM Store s WHERE s.address LIKE :address order by s.id"); reader.setParameterValues(parameters); reader.setPageSize(chunkSize); return reader; }
JpaPagingItemReader<T> reader = new JpaPagingItemReader<>();