H2 查询错误 Table not found and this database is empty

问题描述 投票:0回答:0

在运行 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

显然这是一个普遍的问题。我尝试了以下两个线程中的几乎所有解决方案

问题一

问题2

spring-boot h2 flyway
© www.soinside.com 2019 - 2024. All rights reserved.