尝试使用Spring Boot on 2数据库MySQL和Oracle SQL构建多租户应用程序 . 应用程序的目的是将数据发布到Oracle DB,然后在完成后将相同的数据发布到MySQL DB .

所以应用程序 yml 读取这个:

multitenancy:
  tenants:
  - name: tenant_1
    default: true
    url: jdbc:mysql://localhost:3306/automation_test
    username: root
    password: ****
    driver-class-name: com.mysql.jdbc.Driver
  - name: tenant_2
    default: false
    url: jdbc:oracle:thin:@//localhost:1521:xe
    username: SYS
    password: ****
    driver-class-name: oracle.jdbc.driver.OracleDriver

所以我使用 CurrentTenantIdentifierResolverAbstractDataSourceBasedMultiTenantConnectionProviderImpl 来实现这一点 . 问题是它对MySQL数据库工作正常但是没有发布数据到Oracle抛出此异常:

引起:org.hibernate.HibernateException:当'hibernate.dialect'未设置为org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100)〜[hibernate]时,对DialectResolutionInfo的访问不能为null -core-5.2.17.Final.jar:5.2.17.Final] at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)〜[hibernate-core-5.2.17 . Final.jar:5.2.17.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)~ [hibernate-core-5.2.17.Final.jar:5.2.17 . 最后]