如何在 Spring Boot 1.4.1 中为 @DataJpaTest 添加 mode=mysql 到嵌入式 H2 DB?

新手上路,请多包涵

我在执行 junit 测试时使用 schema.sql 文件创建我的 sql 模式时遇到一些问题,而此模式包含 mysql 特定表达式。我必须将 mode=mysql 添加到 H2 网址。

例如这样的东西: jdbc:h2:mem:testd;MODE=MYSQL

但是 Spring boot 自动使用枚举 org.springframework.boot.autoconfigure.jdbc.EmbeddedDatabaseConnection 中定义的 url 及其 url

jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE

我已经尝试过类似的方法来让它工作,但是 spring 没有从我的 test-application.properties 中获取 spring.datasource.url=jdbc:h2:mem:testdb;MODE=MYSQL 。我的 test-application.properties 中的所有其他设置都已成功读取。

如果我让 spring/hibernate 在我的实体中使用 javax.persistence 注释创建模式(没有 schema.sql 文件),一切正常。

有添加模式的简单方法吗?

原文由 Marco 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 635
1 个回答

spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL

在 application-test.properties 中,加上

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@ActiveProfiles("test")

在测试课上

原文由 Evgeny Batalov 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题