Код: Выделить всё
@Bean
public CamelCaseToUnderscoresNamingStrategy myPhysicalNamingStrategy(MyDataSourceRouter dataSourceRouter) {
return new CamelCaseToUnderscoresNamingStrategy() {
@Override
public Identifier toPhysicalSchemaName(Identifier logicalName, JdbcEnvironment jdbcEnvironment) {
// read schema here either from jdbcEnvironment datasource of from thread local variable of the dataSourceRouter.
return Identifier.toIdentifier(dataSourceRouter.getCurrentSchema());
}
};
}
Я также попробовал использовать описанные решения из этого весеннего блога: [https://spring.io/blog/2022/07/31/how-t ... pplication].
Но поскольку MS SQL не поддерживает «setSchema» для объектов DataSource или Connection, ни один из этих подходов не является решением. Поэтому MultiTenantConnectionProvider не является решением для MS SQL.
Как я могу «научить» PhysicalNamingStragtegy работать вместе с AbstractRoutingDataSource? Похоже, PhysicalNamingStragtegy применяется только к defaultDataSource из AbstractRoutingDataSource
Подробнее здесь: https://stackoverflow.com/questions/792 ... gdatasourc
Мобильная версия