I am using RepositoryItemReader as reader. I have requirement to process whole List of reader value for that chunk together.
When I am trying to do Chunk Processing by Extending Reader to return List, in my Processor I get error
class Car cannot be cast to java.util.list(Car is in unnamed module of loader 'app'; java.util.List is in module java.base of loader 'bootstrap')
Reader
public class CarReader extends RepositoryItemReader<List<Car>>{
@Autowired
CarRepository carRepository;
public CarReader(){
super();
this.setPageSize(100);
this.setSort(CarSort());
this.setRepository(carRepository);
this.setMethodName("findAll");
return repositoryItemReader;
}
Repository
public interface CarRepository extends PagingAndSortingRepository<Car,long>{
Page<Car> findAll(Pageable pageable);
}
Processor
public class CarProcessor implements ItemProcessor<List<Car>,List<Car>>{
@Override
public List<Car> process(List<Car> cars){
//prepare CarTransform
}
}
Step
@Bean
public Step step1() {
return this.stepBuilderFactory.get("step1")
.<List<Car>, List<CarTransform>>chunk(100)
.reader(carReader)
.processor(carProcessor)
.writer(carWriter)
.build();
}