我尝试将Spring Batch实施到现有环境中。
我的春季批处理工作正常,但似乎没有将实例插入春季批处理表中(Batch_job_execution,...)
我不明白为什么它没有失败,并且批处理完成了?
我该如何解决此问题并根据已经存在的配置正确地配置我的spring批处理?
我有一个transactionManager配置如下:
项目的通用配置
@Bean
public JpaTransactionManager myTxManager() {
return new JpaTransactionManager(myEmf().getObject());
}
我目前的春季批处理配置
@Bean
@Override
public JobRepository getJobRepository() throws Exception {
MapJobRepositoryFactoryBean factory = new MapJobRepositoryFactoryBean(getTransactionManager());
factory.setIsolationLevelForCreate("ISOLATION_DEFAULT");
factory.afterPropertiesSet();
return factory.getObject();
}
@Override
public JobLauncher getJobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(getJobRepository());
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
@Override
public JpaTransactionManager getTransactionManager() throws Exception {
return myTxManager;
}
@Override
public JobExplorer getJobExplorer() throws Exception {
return this.jobExplorer;
}
最佳答案
MapJobRepositoryFactoryBean
创建一个由内存JobRepository
实现支持的Map
,而不是数据库。使用JobRepositoryFactoryBean
代替,您将在数据库中看到记录。