PhysicalNamingStrategyStandardImpl JPA 休眠命名适用于 dev/local 但不适用于测试

PhysicalNamingStrategyStandardImpl JPA hibernate naming works for dev/local but not in testing

我的 table 名字是驼峰式的,hibernate (v5) 命名是 PhysicalNamingStrategyStandardImpl,当 运行 应用程序使用 @SpringBootApplication 但当它用于测试和使用 @DataJpaTest 时它会变成驼峰名称全部大写,因此测试不会执行。

我还确保我有两个单独的 application.yml 一个用于开发,一个用于测试,一个用于测试工作

这就是我声明我的命名的方式,它适用于 dev/local:

jpa:
  hibernate:
    naming:
      physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

table 名称声明如下:@Table(name = "ClinicalUser") 出现以下错误:

ERROR 35284 --- [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : Table "CLINICALUSER" not found

我想再次提一下,这在 dev/local 环境中使用时有效。

我已经检查了所有其他相关问题,他们要么无法连接到他们的测试 application.yml,要么他们因不同的命名而遇到不同的问题。

我真的不明白到底出了什么问题,但我的 pom.xml 文件有 h2 依赖项,在删除它并添加 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) 之后 在 @DataJpaTest 下有效。