H2 数据库根本不创建 2 列,但仅当它是在没有 DATAGEN 配置文件的情况下构建的

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

我正处于大学作业的终点线,我们必须使用 Spring-Boot - Java - H2 后端(构建工具:Maven)开发一个全栈应用程序。

部分任务是,如果在启动时设置配置文件datagen,应用程序必须能够插入测试数据集。

我在我的项目中使用 IntelliJ,我在整个开发过程中配置并使用了数据生成工具,今天只运行应用程序进行检查:mvn clean compile spring-boot:run

我意识到,当我想向数据库添加数据时,我得到了 BadSQLGrammarException。我尝试对其进行调试,结果(在 H2 控制台的帮助下),我的马表的 2 列实际上由于任何原因都没有创建。

CREATE TABLE IF NOT EXISTS horse
(
    id            BIGINT AUTO_INCREMENT PRIMARY KEY,
    name          VARCHAR(255)            NOT NULL,
    description   VARCHAR(255),
    date_of_birth DATE                    NOT NULL,
    sex           ENUM ('MALE', 'FEMALE') NOT NULL,
    owner_id      BIGINT,
    parent_1_id   BIGINT,
    parent_2_id   BIGINT,
    FOREIGN KEY (owner_id) REFERENCES owner (id) ON DELETE SET NULL
);

ALTER TABLE horse ADD FOREIGN KEY (parent_1_id) REFERENCES horse(id) ON DELETE SET NULL;
ALTER TABLE horse ADD FOREIGN KEY (parent_2_id) REFERENCES horse(id) ON DELETE SET NULL;

请帮忙,我不知道,怎么可能!

提前致谢:

彼得

图片在这里(我似乎没有足够的声誉来正常发布它们): intellij with the compile time errors and with the create table sql script h2 console

因为我想将数据添加到数据库(通过正在运行的应用程序前端),我得到了 BadSQLGrammarException。我试图调试它,结果(在 H2 控制台的帮助下),我的马表的 2 列实际上没有创建。

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