refactor: update tenant data source configuration and routing logic.
This commit is contained in:
@@ -103,6 +103,7 @@ public class TenantDataSourceConfig implements WebMvcConfigurer {
|
|||||||
|
|
||||||
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
|
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
|
||||||
vendorAdapter.setGenerateDdl(true);
|
vendorAdapter.setGenerateDdl(true);
|
||||||
|
vendorAdapter.setDatabasePlatform("org.hibernate.dialect.PostgreSQLDialect");
|
||||||
em.setJpaVendorAdapter(vendorAdapter);
|
em.setJpaVendorAdapter(vendorAdapter);
|
||||||
|
|
||||||
Map<String, Object> props = new HashMap<>();
|
Map<String, Object> props = new HashMap<>();
|
||||||
|
|||||||
@@ -33,7 +33,16 @@ public class TenantRoutingDataSource extends AbstractRoutingDataSource {
|
|||||||
@Override
|
@Override
|
||||||
protected Object determineCurrentLookupKey() {
|
protected Object determineCurrentLookupKey() {
|
||||||
String tenant = TenantContext.getCurrentTenant();
|
String tenant = TenantContext.getCurrentTenant();
|
||||||
return tenant != null ? tenant : "default";
|
if (tenant != null && dataSources.containsKey(tenant)) {
|
||||||
|
return tenant;
|
||||||
|
}
|
||||||
|
// Fallback: если нет контекста (например при инициализации JPA)
|
||||||
|
// или тенант не найден — берём первый доступный
|
||||||
|
if (!dataSources.isEmpty()) {
|
||||||
|
String fallback = dataSources.keySet().iterator().next().toString();
|
||||||
|
return fallback;
|
||||||
|
}
|
||||||
|
return "default";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user