From 75b1ad166eeb8ae1055772651cd63477d3f866a2 Mon Sep 17 00:00:00 2001 From: Zuev Date: Thu, 12 Mar 2026 23:53:20 +0300 Subject: [PATCH] refactor: update tenant data source configuration and routing logic. --- .../app/config/tenant/TenantDataSourceConfig.java | 1 + .../app/config/tenant/TenantRoutingDataSource.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/com/magistr/app/config/tenant/TenantDataSourceConfig.java b/backend/src/main/java/com/magistr/app/config/tenant/TenantDataSourceConfig.java index c061f48..2fe64c9 100644 --- a/backend/src/main/java/com/magistr/app/config/tenant/TenantDataSourceConfig.java +++ b/backend/src/main/java/com/magistr/app/config/tenant/TenantDataSourceConfig.java @@ -103,6 +103,7 @@ public class TenantDataSourceConfig implements WebMvcConfigurer { HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); vendorAdapter.setGenerateDdl(true); + vendorAdapter.setDatabasePlatform("org.hibernate.dialect.PostgreSQLDialect"); em.setJpaVendorAdapter(vendorAdapter); Map props = new HashMap<>(); diff --git a/backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java b/backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java index 438c4d9..e7e9e87 100644 --- a/backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java +++ b/backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java @@ -33,7 +33,16 @@ public class TenantRoutingDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { 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"; } /**