Java 为什么h2看不到刚刚迁移的表?

Java 为什么h2看不到刚刚迁移的表?,java,spring-boot,h2,flyway,Java,Spring Boot,H2,Flyway,我有一个由PostgreSQL 10支持的Spring Boot web服务。由于有几轮开发,Flyway用于应用DB中所有必要的更改。 现在我需要用test覆盖我们的一个模块,因此我需要模拟PostgreSQL,我决定使用H2。奇怪的是,当我运行测试时,我可以看到我在DB迁移方面没有问题,但当我尝试使用存储库时,我发现 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MY_TABLE" not found; SQL stat

我有一个由PostgreSQL 10支持的Spring Boot web服务。由于有几轮开发,Flyway用于应用DB中所有必要的更改。 现在我需要用test覆盖我们的一个模块,因此我需要模拟PostgreSQL,我决定使用H2。奇怪的是,当我运行测试时,我可以看到我在DB迁移方面没有问题,但当我尝试使用存储库时,我发现

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MY_TABLE" not found; SQL statement:
我尝试在连接url中将H2切换到PostgreSQL模式,模式=PostgreSQL,数据库_切换到_LOWER=TRUE,但没有帮助。我还保持连接打开,DB_CLOSE_DELAY=-1。Flyway脚本中的SQL查询看起来不错,因为任何修改它们的尝试都很容易导致语法错误

配置属性

driver-class-name: org.h2.Driver
url: jdbc:h2:mem:test;MODE=PostgreSQL;DATABASE_TO_UPPER=FALSE;DATABASE_TO_LOWER=TRUE;DB_CLOSE_DELAY=-1
username: sa
password: sa
测试班

@SpringBootTestclasses=MyConfig.class @RunWithSpringRunner.class 公共类邮件服务测试{ @自动连线 私人MyRepo回购; @试验 公共voidx抛出异常{ repo.findAll;//此处引发异常 } } 配置类

@SpringBoot配置 @EnableAutoConfigurationexclude=DataSourceAutoConfiguration.class @PropertySourceclasspath:custom-application.properties @ComponentScanbasePackages={com.example.myproj} @EnableJpaRepositoriesbasePackages=com.example.myproj,entityManagerFactoryRef=customEntityManagerFactory,transactionManagerRef=customTransactionManager @EntityScanbasePackages=com.example.myproj @启用Web安全性 @EnableGlobalMethodSecurity Repostenabled=true @EnableJpaAuditingauditorAwareRef=customAuditorAware @使能调度 公共类MyConfig{ ... }
有什么线索可以解决这个问题,或者至少可以在哪里找到解决方案?谢谢你

今天早上还在讨论同一个问题

解决方案处于从AbstractJdbcConfiguration继承的配置中,以更改报价处理:

@豆子 @凌驾 公共JdbcMappingContext JdbcMappingContext可选namingStrategy,JdbcCustomConversions自定义转换{ JdbcMappingContext-mappingContext=super.jdbcMappingContextnamingStrategy,customConversions; mappingContext.setForceQuotefalse; 返回mappingContext; } TL;博士

使用JdbcTemplate调试我发现的测试,select*from测试可以工作,但select*from测试不能

这是真正解决这个问题的关键发现

在我的例子中,很明显这是某种回归,因为它在我升级Spring版本之前就起作用了

所以我开始在google中搜索引用JDBCSpring模板。第三项是: