2017-06-06 463 views
-1

我有每個正在處理不同的實體兩個數據源。我已成立實體掃描包實體管理器來掃描不同的包。而且我已經配置「hibernate.hbm2ddl.auto」進行更新。應用程序啓動時,休眠正在打造兩個數據源表。我的要求是創建映射到相應數據源的表。Springboot多個數據源Entityscan

+0

你嘗試把'data.sql'和'schema.sql'在您的** **的資源文件夾 – fiskra

+0

號我有兩個配置文件和兩個數據庫兩個獨立的實體包。 –

回答

0

您可以創建兩個文件schema.sql文件(你DDL的像創建ALTER下降)和data.sql(你DML的像插入,刪除)爲您的資源文件夾中的每個數據源。那麼你應該把財產你application.properties運行腳本時,應用程序啓動:spring.jpa.hibernate.ddl-auto=none

之後,在你的Application.java類,創建一個方法來運行腳本:

這是第一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; 

}

我覺得應該work.You可以創建你的第二個數據源的另一種方法。