gpt4 book ai didi

spring-boot - @DataJpaTest 忽略 `spring.datasource.url` 配置。怎么修?

转载 作者:行者123 更新时间:2023-12-03 18:45:17 24 4
gpt4 key购买 nike

我遇到了 @DataJpaTest 问题,因为由于缺少架构 [1],无法创建表。所以我想,我可以通过在连接字符串中创建模式来欺骗 spring,如下所示:

应用程序属性

spring.datasource.url=jdbc:h2:mem:SCH;MODE=Oracle;DB_CLOSE_DELAY=-1;INIT=create schema if not exists SCH
spring.datasource.username=test
spring.datasource.password=test

无论多么神秘,这都无济于事。为什么?

快速查看测试日志的摘录:
2019-02-13 17:48:12.735  INFO [CCH,,,] 28586 --- [           main] o.s.j.d.e.EmbeddedDatabaseFactory        : Starting embedded database: url='jdbc:h2:mem:11247702-6bc4-44b9-be65-9639ebb8d695;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false', username='sa'

好吧,这是因为@DataJpaTest 忽略在 application.properties 中配置的数据源,而是使用自动配置的 h2 数据库

我发现我可以使用 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) 但这也不起作用并且使用 Unknown host specified 失败。什么主持人???

那么任何想法如何说服@DataJpaTest 使用配置的数据源?

[1] Using @DataJpaTest I cannot force h2 to create schema

最佳答案

我道歉,这是我在项目/测试配置中的错误。

给出一些答案:默认情况下,@DataJpaTest 使用嵌入式 h2 数据库并忽略 application.properties 中声明的连接字符串。注释 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) 禁用此行为,并且 application.properties 中配置的 db 将被 @DataJpaTest 测试使用。

关于spring-boot - @DataJpaTest 忽略 `spring.datasource.url` 配置。怎么修?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54675623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com