2017-06-06 1 views
-1

Ich habe zwei Datenquellen, die sich jeweils mit verschiedenen Entitäten befassen. Ich habe Entity-Scan-Pakete für den Entity Manager eingerichtet, um verschiedene Pakete zu scannen. und ich habe auch "hibernate.hbm2ddl.auto" konfiguriert, um zu aktualisieren. Wenn die Anwendung gestartet wird, erstellt der Ruhezustand Tabellen in beiden Datenquellen. Meine Anforderung besteht darin, Tabellen zu erstellen, die den entsprechenden Datenquellen zugeordnet sind.Springboot Mehrere Datenquellen Entityscan

+0

Haben Sie versucht, 'data.sql' und' schema.sql' in den Ordner ** resources ** zu setzen. – fiskra

+0

Nein. Ich habe zwei Konfigurationsdateien und zwei separate Entity-Pakete für zwei Datenbanken. –

Antwort

0

Sie können für jede Datenquelle in Ihrem Ressourcenordner zwei Dateien erstellen: schema.sql (Ihre ddls wie create alter drop) und data.sql (Ihre dmls sind wie Einfügen, Löschen). Dann sollten Sie eine Eigenschaft in Ihrem application.properties setzen Skripte auszuführen, wenn die Anwendung Booten: spring.jpa.hibernate.ddl-auto=none

Danach in Ihrer Application.java Klasse, eine Methode erstellen Sie Ihre Skripte auszuführen:

Das für die erste ds:

@Bean(name = "dataSource") 
public DriverManagerDataSource dataSource() { 
    DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
    dataSource.setDriverClassName("org.h2.Driver"); 
    dataSource.setUrl("ds url"); 
    dataSource.setUsername(""); 
    dataSource.setPassword(""); 

    // schema init 
    Resource initSchema = new ClassPathResource("scripts/schema-first.sql"); 
    Resource initData = new ClassPathResource("scripts/data-first.sql"); 
    DatabasePopulator databasePopulator = new 
    ResourceDatabasePopulator(initSchema, initData); 
    DatabasePopulatorUtils.execute(databasePopulator, dataSource); 

    return dataSource; 

}

ich denke, es sollte work.You eine andere Methode für die zweite Datenquelle schaffen.

Verwandte Themen