首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到产品名称的DatabaseType:[Tibero]

找不到产品名称的DatabaseType:[Tibero]
EN

Stack Overflow用户
提问于 2020-04-17 15:30:14
回答 1查看 705关注 0票数 0

在尝试设置Spring boot - spring批处理项目时,我遇到一个错误,声明:

我已经检查了spring batch支持的数据库,但Tibero不在列表中。

有没有其他方法可以用指向Tibero DB...

请参考下面的错误日志。

代码语言:javascript
复制
Caused by: java.lang.IllegalArgumentException: DatabaseType not found for product name: [Tibero]
    at org.springframework.batch.support.DatabaseType.fromProductName(DatabaseType.java:84) ~[spring-batch-infrastructure-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    at org.springframework.batch.support.DatabaseType.fromMetaData(DatabaseType.java:123) ~[spring-batch-infrastructure-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    at org.springframework.batch.core.repository.support.JobRepositoryFactoryBean.afterPropertiesSet(JobRepositoryFactoryBean.java:183) ~[spring-batch-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
    at org.springframework.boot.autoconfigure.batch.BasicBatchConfigurer.createJobRepository(BasicBatchConfigurer.java:129) ~[spring-boot-autoconfigure-2.2.6.RELEASE.jar:2.2.6.RELEASE]
    at org.springframework.boot.autoconfigure.batch.BasicBatchConfigurer.initialize(BasicBatchConfigurer.java:97) ~[spring-boot-autoconfigure-2.2.6.RELEASE.jar:2.2.6.RELEASE]
    ... 24 common frames omitted
EN

回答 1

Stack Overflow用户

发布于 2020-04-17 18:27:24

如果你选中DatabaseType,它将不支持你的数据库(Tibero)。

代码语言:javascript
复制
public enum DatabaseType {

    DERBY("Apache Derby"),
    DB2("DB2"),
    DB2VSE("DB2VSE"),
    DB2ZOS("DB2ZOS"),
    DB2AS400("DB2AS400"),
    HSQL("HSQL Database Engine"),
    SQLSERVER("Microsoft SQL Server"),
    MYSQL("MySQL"),
    ORACLE("Oracle"),
    POSTGRES("PostgreSQL"),
    SYBASE("Sybase"),
    H2("H2"),
    SQLITE("SQLite");
}

这些是spring batch开箱即用支持的数据库。但是您可以按照documentation注册非标准数据库

由于Tibero与oracle完全兼容,因此您可以像下面这样创建TiberoBatchConfigurer

代码语言:javascript
复制
@EnableBatchProcessing
public class TiberoBatchConfigurer extends DefaultBatchConfigurer {

  @Autowired
  private DataSource dataSource;
  @Autowired
  private PlatformTransactionManager transactionManager;

  public TiberoBatchConfigurer() {
      super();
  }

  public TiberoBatchConfigurer(DataSource dataSource) {
      super(dataSource);
  }

  @Override
  protected JobRepository createJobRepository() throws Exception {
    JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
    factory.setDataSource(dataSource);
    factory.setDatabaseType("ORACLE");
    factory.setTransactionManager(transactionManager);
    factory.afterPropertiesSet();
    return factory.getObject();
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61266208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档