こんにちは私は春バッチをはじめて使用しています。私の使用例は、SpringブートとSpringデータを使用して、Oracle DBからcsvファイルにデータをロードする必要があるということです。 ItemReaderでoracle dbを設定するのが難しいです。誰かが私を助けることができますか?Springバッチ、ブート、Spring Jpaを使用してOracle DatabaseからCSVファイルにデータをロード
は、ここでご利用の場合は、私が頻繁に発生したものです私のコード
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Autowired
public PersonAcctRepository personAcctRepository;
@Bean
public ItemWriter<CustomerInsr> writer(){
FlatFileItemWriter<CustomerInsr> writer = new FlatFileItemWriter<CustomerInsr>();
String exportFileHeader = "FIRST_NAM, MIDDLE_NAM, LAST_NAM";
StringHeaderWriter headerWriter = new StringHeaderWriter(exportFileHeader);
writer.setHeaderCallback(headerWriter);
writer.setResource(new ClassPathResource("sample-data.csv"));
LineAggregator<CustomerInsr> lineAgg = createCustomerInsrAgg();
writer.setLineAggregator(lineAgg);
return writer;
}
@Bean
public LineAggregator<CustomerInsr> createCustomerInsrAgg(){
DelimitedLineAggregator<CaresCustomerInsr> deliAgg = new DelimitedLineAggregator<CustomerInsr>();
deliAgg.setDelimiter(",");
FieldExtractor<CustomerInsr> fieldExtractor = createCustomerInsrExtractor();
deliAgg.setFieldExtractor(fieldExtractor);
return deliAgg;
}
@Bean
public FieldExtractor<CustomerInsr> createCustomerInsrExtractor(){
BeanWrapperFieldExtractor<CustomerInsr> fieldExtractor = new BeanWrapperFieldExtractor<CustomerInsr>();
fieldExtractor.setNames(new String []{"firstName", "middleName", "lastName"});
return fieldExtractor;
}
@Bean
public ItemReader<CustomerInsr> reader(){
RepositoryItemReader<CustomerInsr> reader = new RepositoryItemReader<CustomerInsr>();
reader.setRepository(personAcctRepository);
reader.setMethodName("findAll");
return reader;
}
@Bean
public Job job(){
return jobBuilderFactory.get("job")
.incrementer(new RunIdIncrementer())
.flow(step())
.end()
.build();
}
@Bean
public Step step(){
return stepBuilderFactory.get("step")
.<CustomerInsr, CustomerInsr> chunk(10)
.reader(reader())
.writer(writer())
.build();
}
}
何が欠けているか間違っているかを詳しく説明できますか?スタックトレース? –
oracle dbからデータを読み取ろうとしていますが、Springのデータ・リポジトリ(JPAリポジトリ、findAll()メソッドを使用しています)を使用しています。私はapplication.propertiesファイルにデータベースプロパティを与えています。 ItemReaderでメソッド(findAll())とデータソースをどのように設定すればよいですか –