在Spring Boot中,是否可以同时运行两个嵌入式数据库,并使用spring.jpa.generate-ddl来填充它们?
在Spring Boot中可以使用多个数据库,但是Spring Boot只能自动配置一个数据库。如果需要配置第二个数据库,需要自己进行配置。如果只需要一个JDBC连接,只需要配置数据源即可。如果需要使用JPA,还需要配置第二个JPA配置,使用第二个数据源。
具体代码如下:
@Configuration public class SecondDataSourceConfig { @Primary @Bean(name = "secondDataSource") @ConfigurationProperties(prefix = "second.datasource") public DataSource secondDataSource() { return DataSourceBuilder .create() .driverClassName("org.h2.Driver") .build(); } @Primary @Bean(name = "secondEntityManagerFactory") public LocalContainerEntityManagerFactoryBean secondEntityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("secondDataSource") DataSource secondDataSource) { return builder.dataSource(secondDataSource) .packages("com.example.entity") .persistenceUnit("second") .build(); } @Primary @Bean(name = "secondTransactionManager") public PlatformTransactionManager secondTransactionManager( @Qualifier("secondEntityManagerFactory") EntityManagerFactory secondEntityManagerFactory) { return new JpaTransactionManager(secondEntityManagerFactory); } }
以上代码和更多信息可以在这篇文章中找到。
感谢Stefan的回答。我已经成功配置了第二个数据源。但是我的具体问题是如何从实体类中填充这些嵌入式数据库。我知道可以使用schema.sql来进行配置,但是我想从实体类中进行配置。