在我的Spring Boot应用程序中,我喜欢使用具有特定架构的Spring Batch元表。 documentation建议使用表前缀。
我尝试将batch.table.prefix=abc.BATCH_
添加到属性文件中。我还试图覆盖配置:
@Configuration
@EnableBatchProcessing
public class BatchConfig {
@Bean
public JobRepository jobRepository(DataSource dataSource) throws Exception {
final JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
factory.setDataSource(dataSource);
factory.setTablePrefix("abc.BATCH_");
factory.setTransactionManager(transactionManager(dataSource));
factory.afterPropertiesSet();
return factory.getObject();
}
@Bean
public JobExplorer jobExplorer(DataSource dataSource) throws Exception {
final JobExplorerFactoryBean factory = new JobExplorerFactoryBean();
factory.setDataSource(dataSource);
factory.setTablePrefix("abs.BATCH_");
factory.afterPropertiesSet();
return factory.getObject();
}
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
...
}
但我总是得到错误: 引起:org.h2.jdbc.JdbcSQLException:表" BATCH_JOB_INSTANCE"未找到; SQL语句: SELECT JOB_INSTANCE_ID,来自BATCH_JOB_INSTANCE的JOB_NAME = JOB_NAME =?和JOB_KEY =? [42102-182]
答案 0 :(得分:3)
我认为使用@EnableBatchProcessing
更改存储库/资源管理器的最佳方法是提供您自己的BatchConfigurer
(只是一个bean定义)。您可以轻松扩展其中一个现有实例。
答案 1 :(得分:0)