バッチジョブを処理して更新を実行するためにSpring BatchとJPAを使用しています。私はデフォルトのリポジトリの実装を使用しています。Spring Batch Jpa Repositoryデータを保存しないで保存
そして、私はrepository.saveを使用して、変更されたオブジェクトをプロセッサに保存しています。 また、プロセッサやライターに@Transactional Annotationが指定されていません。
私はどこにも例外はありません。選択はうまくいく。
JPAでDBにデータを保存するために使用する必要がある「setAutoCommit(true)」のような設定はありますか?ここで
は私のステップ、リーダライタの設定です: はまた、私のconfigクラスはEnableBatchProcessing
@EnableBatchProcessing
public class UpgradeBatchConfiguration extends DefaultBatchConfigurer{
@Autowired
private PlatformTransactionManager transactionManager;
@Override
protected JobRepository createJobRepository() throws Exception {
JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
factory.setDataSource(getdataSource());
factory.setTransactionManager(transactionManager);
factory.setTablePrefix("CFTES_OWNER.BATCH_");
factory.afterPropertiesSet();
return factory.getObject();
}
@Bean(name = "updateFilenetJobStep")
public Step jobStep(StepBuilderFactory stepBuilderFactory,
@Qualifier("updateFileNetReader") RepositoryItemReader reader,
@Qualifier("updateFileNetWriter") ItemWriter writer,
@Qualifier("updateFileNetProcessor") ItemProcessor processor) {
return stepBuilderFactory.get("jobStep").allowStartIfComplete(true).chunk(1).reader(reader).processor(processor)
.writer(writer).transactionManager(transactionManager).build();
}
@Bean(name = "updateFileNetWriter")
public ItemWriter getItemWriter() {
return new BatchItemWriter();
}
@Bean(name = "updateFileNetReader")
public RepositoryItemReader<Page<TermsAndConditionsErrorEntity>> getItemReader(
TermsAndConditionsErrorRepository repository) {
RepositoryItemReader<Page<TermsAndConditionsErrorEntity>> reader = new RepositoryItemReader<Page<TermsAndConditionsErrorEntity>>();
reader.setRepository(repository);
reader.setMethodName("findAll");
HashMap<String, Direction> map = new HashMap<String, Direction>();
map.put("transactionId", Direction.ASC);
reader.setSort(map);
return reader;
}
}
でアノテートされており、ライターで、これは私がRepository.save
にrepository.save(entity);
あなたのjob-context.xmlや他の設定を共有することができます –
問題を再現するコードと設定を追加してください –
Configクラスと私が使っているrepository.saveメソッドでそれを更新しました。間違った – jyn