是否可以在 Spring Boot 中运行两个使用 spring.jpa.generate-ddl 填充的嵌入式数据库?
Posted
技术标签:
【中文标题】是否可以在 Spring Boot 中运行两个使用 spring.jpa.generate-ddl 填充的嵌入式数据库?【英文标题】:Is it possible to have two embedded databases running in Spring Boot that are populated using spring.jpa.generate-ddl? 【发布时间】:2017-07-13 07:47:09 【问题描述】:我在我的应用程序中有两个要连接的数据库。
我想设置一个仅限开发人员的配置文件,使用嵌入式 H2 数据库模拟这些数据库,并且我想使用 spring.jpa.generate-ddl=true
自动创建它们的架构。每个数据库的实体类都在不同的java包中,希望对我有帮助。
使用 spring 的 autoconf 机制可以做到这一点吗?
【问题讨论】:
【参考方案1】:spring boot 中可以使用多个数据库。 但是spring boot只能自动配置一个数据库。 您需要自己配置第二个数据库。
@Bean
@ConfigurationProperties(prefix="second.datasource")
public DataSource secondDataSource()
return DataSourceBuilder
.create()
.driverClassName("org.h2.Driver")
.build();
如果您只需要一个 jdbc 连接,这已经足够了。当您想使用 JPA 时,您还需要使用第二个数据源的第二个 JPA 配置。
@Bean(name="secondEntityManager")
public LocalContainerEntityManagerFactoryBean mysqlEntityManagerFactory(EntityManagerFactoryBuilder builder,DataSource secondDataSource)
return builder.dataSource(secondDataSource)
.packages("com.second.entity")
.build();
你可以找到上面的代码和更多in this post
【讨论】:
谢谢斯特凡。我已经设法靠自己做到了这一点。我的具体问题是尝试从我的实体类中填充这些嵌入式数据库。我知道我可以使用 schema.sql,但我想从实体中进行。以上是关于是否可以在 Spring Boot 中运行两个使用 spring.jpa.generate-ddl 填充的嵌入式数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在单个 JUnit 测试中运行两个 Spring Boot 微服务?
是否可以在 Spring Boot 中将 MongoDb 和 PostgreSql 用于同一模型?