-1
我有每个正在处理不同的实体两个数据源。我已成立实体扫描包实体管理器来扫描不同的包。而且我已经配置“hibernate.hbm2ddl.auto”进行更新。应用程序启动时,休眠正在打造两个数据源表。我的要求是创建映射到相应数据源的表。Springboot多个数据源Entityscan
我有每个正在处理不同的实体两个数据源。我已成立实体扫描包实体管理器来扫描不同的包。而且我已经配置“hibernate.hbm2ddl.auto”进行更新。应用程序启动时,休眠正在打造两个数据源表。我的要求是创建映射到相应数据源的表。Springboot多个数据源Entityscan
您可以创建两个文件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可以创建你的第二个数据源的另一种方法。
你尝试把'data.sql'和'schema.sql'在您的** **的资源文件夹 – fiskra
号我有两个配置文件和两个数据库两个独立的实体包。 –