Tabellen werden in der Spring-Boot-Anwendung nicht in mehreren Datenbanken erstellt

9

Ich arbeite an einer Spring-Boot-Multi-Tenancy-Anwendung. Ich habe mehrere Datenquellen wie folgt konfiguriert:

application.properties

%Vor%

DataSourceBasedMultiTenantConnectionProviderImpl.java

%Vor%

MultitenancyProperties.java

%Vor%

MultiTenancyJpaConfiguration.java

%Vor%

Anwendungsstarter

%Vor%

Wenn ich die Boot-Anwendung ausführe, werden alle Tabellen nur in der ersten Datenquelle erstellt.
1) Wie kann ich beim Start der Anwendung Tabellen in allen Datenquellen erstellen? 2) Wie können Verbindungen für jede Datenquelle geöffnet / geschlossen werden?
3) Gibt es eine bessere Möglichkeit zur Konfiguration von Multi-Tenancy-Anwendungen mit Spring-Boot für bessere Leistung?

    
JavaDeveloper 30.03.2017, 15:36
quelle

2 Antworten

1

Wie @Alex sagte, benötigen Sie verschiedene EntityManager, TransactionManager und Datenquellen. Hier ist, wie ich es machen würde

%Vor%

Sie können zwei andere Klassen wie diese erstellen. Denken Sie daran, @Primary nur auf einer Instanz der Datenquelle, des Transaktionsmanagers und des Entity-Managers zu verwenden (egal welcher). Ein anderes Wort der Vorsicht, stellen Sie sicher, dass Repository-Klassen in verschiedenen Paketen für alle drei Datenbanken sind.

    
pvpkiran 07.04.2017 14:50
quelle
0

Sie benötigen zwei verschiedene Persistenzfabriken, nicht eine, jede sollte verschiedene EntityManager für verschiedene Datenquellen erzeugen. Außerdem sollte jede Entitätszuordnung so gekennzeichnet werden, dass sie nur mit einem Entitätsmanager verwendet wird. Siehe vollständige Lösung hier:

Ссылка

    
Alex Chernyshev 06.04.2017 11:09
quelle