我将 SpringBatch 5 与 Teradata db 一起使用,我尝试创建一个作业存储库来添加数据源,但我收到有关 org.springframework.batch.support.DatabaseType 的异常:
Failed to instantiate [org.springframework.batch.core.repository.JobRepository]: Factory method 'jobRepository' threw exception with message: No enum constant org.springframework.batch.support.DatabaseType.TERADATA
作业存储库:
@Bean
public JobRepository jobRepository(@Qualifier("dataSource") DataSource dataSource,
PlatformTransactionManager transactionManager) throws Exception {
JobRepositoryFactoryBean jobRepositoryFactoryBean = new JobRepositoryFactoryBean();
jobRepositoryFactoryBean.setDataSource(dataSource);
jobRepositoryFactoryBean.setTransactionManager(transactionManager);
jobRepositoryFactoryBean.setIsolationLevelForCreate("ISOLATION_SERIALIZABLE");
jobRepositoryFactoryBean.setDatabaseType("TERADATA");
jobRepositoryFactoryBean.setIncrementerFactory(new DefaultDataFieldMaxValueIncrementerFactory(dataSource));
return jobRepositoryFactoryBean.getObject();
}
如有任何帮助,我们将不胜感激!
Spring Batch 不正式支持 Teradata。由于您已经定义了 Teradata 数据源,因此您可以省略在
DatabaseType
上设置 JobRepositoryFactoryBean
,这将尝试从数据源的元数据中自动检测类型。
请参阅存储库中的非标准数据库类型了解更多详细信息。