Construindo uma api rest para recuperar dados de uma base usando spring batch

0 respostas
javaspring
J

Estou tentando construir uma api rest para recuperar dados de uma tabela, usando spring batch.

Abaixo meu serviço rest:

@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE + ";charset=UTF-8")
public List<Deposit> requestJob1() throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, JobParametersInvalidException, NoSuchJobException, JobParametersNotFoundException, UnexpectedJobExecutionException {
    
    jobLauncher.run(jdbcCursorReaderJob, new JobParametersBuilder().addLong("uniqueness", System.nanoTime()).toJobParameters());
    
    return ?

Abaixo meu reader:

@Bean
public JdbcCursorItemReader<Deposit> jdbcCursorReader(
        @Qualifier("datasource") DataSource dataSource) {
    
    return new JdbcCursorItemReaderBuilder<Deposit>()
            .name("jdbcCursorReader")
            .dataSource(dataSource)
            .sql("select * from depositos")
            .rowMapper(new BeanPropertyRowMapper<Deposit>(Deposit.class))
            .build();
}

Abaixo meu writer:

public class JdbcCursorWriterConfig implements ItemWriter<Deposit> {

    List<Deposit> output = TransactionAwareProxyFactory.createTransactionalList();

    public void write(List<? extends Deposit> items) throws Exception {
        output.addAll(items);
    }

    public List<Deposit> getOutput() {
       return output;
    }

}

Minhas dúvidas são:

1 - Acho que meu writer está errado. Como exatamente devo escrever meu writer? 2 - Como devo manipular o retorno do meu writer no controller?

Criado 9 de fevereiro de 2021
Respostas 0
Participantes 1