【问题标题】:Spting Boot with Graphql Error : org.h2.jdbc.JdbcSQLSyntaxErrorException Table not found in h2 DatabaseSpring Boot 出现 Graphql 错误:在 h2 数据库中找不到 org.h2.jdbc.JdbcSQLSyntaxErrorException 表
【发布时间】:2021-08-16 04:13:39
【问题描述】:

我使用 h2 数据库实现了一个带有 GraphqlSpring Boot 示例。

运行程序后,我尝试自动创建所有,但出现问题。

虽然我在 application.yml 中重新定义了 URL 并给出了每个实体的名称,但我没有解决它。

这是我的 application.yml 文件,如下所示。

spring:
  application:
    name: springbootgraphql
  datasource:
    url: jdbc:h2:mem:testdb;DATABASE_TO_UPPER=false;DB_CLOSE_DELAY=-1
    driverClassName: org.h2.Driver
    username: sa
    password: password
    hikari:
      connection-timeout: 2000
      initialization-fail-timeout: 0
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    properties:
      hibernate:
        ddl-auto: update
        show_sql: true
        format_sql: true
        enable_lazy_load_no_trans: true
    generate-ddl: true
  h2:
    console:
      enabled: true
server:
  port : 8081

# http://localhost:8081/graphql
graphql:
  servlet:
    mapping: /graphql

这是我的错误,如下所示。

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "hospital" not found; SQL statement:
insert into hospital (id, name) values (1, 'Hospital 1') [42102-200]

这是我的项目链接:My Project

我该如何解决?

【问题讨论】:

    标签: spring-boot graphql h2


    【解决方案1】:

    检查这个post它可能会给你解决方案

    默认情况下,data.sql 脚本现在在 Hibernate 之前运行 初始化。这对齐了基本基于脚本的行为 使用 Flyway 和 Liquibase 进行初始化。如果你想使用 data.sql 填充由 Hibernate 创建的模式,设置 spring.jpa.defer-datasource-initialization 为 true。混合时 不推荐使用数据库初始化技术,这将 还允许您使用 schema.sql 脚本来构建 在通过 data.sql 填充之前由 Hibernate 创建的架构。

    您必须将 spring.jpa.defer-datasource-initialization 转换为 yml 。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-01
    • 2019-12-17
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多