我尝试将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代替,您将在数据库中看到记录。

09-26 06:43