尝试使用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
所以我使用 CurrentTenantIdentifierResolver
和 AbstractDataSourceBasedMultiTenantConnectionProviderImpl
来实现这一点 . 问题是它对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 . 最后]