在运行 SELECT sql 作为集成测试的一部分时,我的 Spring-boot 应用程序出现主题错误。
但是Spring-boot应用启动没有问题。应用程序启动后,我可以在 H2 控制台中看到所有表格。
此外,尽管在 H2 控制台中运行相同的 SQL 查询时在集成测试中出现错误,但它给出了预期的结果。
错误:
org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MY_TABLE1" not found (this database is empty); SQL statement:
SELECT PHD.ID, PRS.ID, PHD.*, PDT.*, PRS.*, PAD.* FROM MY_TABLE1 PHD JOIN MY_TABLE2 PRS ON PHD.REFERENCE_ID = PRS.REFERENCE_ID JOIN MY_TABLE3 PDT ON PDT.HEADER_ID = PHD.ID JOIN MY_TABLE4 PAD ON PAD.MY_HEADER_ID = PHD.ID AND PHD.REFERENCE_ID IN ('ABC6317000802') ORDER BY PHD.CREATED_TS, PDT.CREATED_TS, PRS.CREATED_TS, PAD.CREATED_TS, PAD.ID ASC [42104-214]
我的应用程序.yaml
spring:
cache:
enabled: false
datasource:
url: jdbc:h2:mem:myDB;DB_CLOSE_DELAY=-1;MODE=Oracle;IGNORECASE=TRUE
username: sa
password: 123
driverClassName: org.h2.Driver
flyway:
enabled: true
username: sa
password: 123
url: jdbc:h2:mem:myDB;DB_CLOSE_DELAY=-1;MODE=Oracle
baseline-on-migrate: true
locations: filesystem:C:\Repo\MyAPII\api\src\integrationTest
h2:
console:
enabled: true
path: /h2-console
显然这是一个普遍的问题。我尝试了以下两个线程中的几乎所有解决方案