2017-06-06 461 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可以创建你的第二个数据源的另一种方法。