简体   繁体   English

org.h2.jdbc.JdbcSQLSyntaxErrorException:找不到列; SQL 声明 [SPRINGBOOT]

[英]org.h2.jdbc.JdbcSQLSyntaxErrorException: Column not found; SQL statement [SPRINGBOOT]

I've recently started using Spring Boot: I'm currently using:我最近开始使用 Spring 引导:我目前正在使用:

  • Spring Tool Suite 4 (Spring Boot version 2.6.2) Spring 工具套件 4(Spring Boot 版本 2.6.2)
  • JAVA 8 JAVA 8
  • H2 Console H2 控制台

My goal: Display each of my Student(model) values respective to its type:我的目标:显示我的每个学生(模型)值各自的类型:

Ex:前任:

  • ID: 1,2,3,...编号:1,2,3,...
  • NAME: Bob Kim, Marley Z,...姓名:鲍勃·金,马利·Z,...
  • DEPARTMENT: Computer Science, Nursing,...部门:计算机科学,护理,...
  • UPDATEDBY: chopp3r更新:chopp3r
  • UPDATEDON: 2022-01-17更新日期:2022-01-17

Student.java (Model Class): Student.java(模型类):

@Entity
public class Student 
{
    @Id
    private Integer Id;
    private String name;
    private String department;
    private String updatedBy;
    @DateTimeFormat(pattern="yyy-MM-dd")
    private Date updatedOn;
    
    public Student()
    {
        
    }

    public Student(Integer id, String name, String department, String updatedBy, Date updatedOn) {
        super();
        Id = id;
        this.name = name;
        this.department = department;
        this.updatedBy = updatedBy;
        this.updatedOn = updatedOn;
    }

    GETTERS/SETTERS METHODS...
    TOSTRING METHOD...
    
}

Dependencies i'm using:我正在使用的依赖项:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>

        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>4.3.1</version>
        </dependency>

        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.4.1</version>
        </dependency>

data.sql that works without ERROR but gives me diff values in h2-console: data.sql 可以正常工作,但在 h2-console 中给出了差异值:

insert into student values (1,'Bob Kim','Computer Science','chopp3r','2022-01-17');
insert into student values (2,'Marley Z','Nursing','chopp3r','2022-01-17');
insert into student values (3,'Cyka Blyat','Russian Literature','chopp3r','2022-01-17');

The following picture is what shows in H2-Console and as you notice the DEPARTMENT and NAME column is swapped:下图是 H2-Console 中显示的内容,您注意到 DEPARTMENT 和 NAME 列已交换: 在此处输入图像描述

but if I run the Spring Boot Application with the following data.sql:但如果我使用以下数据运行 Spring 引导应用程序。sql:

insert into student (id,name,department,updatedBy,updatedOn) values (1,'Bob Kim','Computer Science','chopp3r','2022-01-17');
insert into student (id,name,department,updatedBy,updatedOn) values (2,'Marley Z','Nursing','chopp3r','2022-01-17');
insert into student (id,name,department,updatedBy,updatedOn) values (3,'Cyka Blyat','Russian Literature','chopp3r','2022-01-17');

I get an error saying:我收到一条错误消息:

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "UPDATEDBY" not found; SQL statement:
insert into student (id,name,department,updatedBy,updatedOn) values (1,'Bob Kim','Computer Science','chopp3r','2022-01-17') [42122-200]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:453) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.message.DbException.get(DbException.java:205) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.message.DbException.get(DbException.java:181) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.table.Table.getColumn(Table.java:703) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.command.Parser.parseColumn(Parser.java:1450) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.command.Parser.parseColumnList(Parser.java:1435) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.command.Parser.parseInsertGivenTable(Parser.java:1804) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.command.Parser.parseInsert(Parser.java:1749) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.command.Parser.parsePrepared(Parser.java:954) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.command.Parser.parse(Parser.java:843) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.command.Parser.parse(Parser.java:815) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.command.Parser.prepareCommand(Parser.java:738) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.engine.Session.prepareLocal(Session.java:657) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.engine.Session.prepareCommand(Session.java:595) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1235) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:212) ~[h2-1.4.200.jar:1.4.200]
    at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:201) ~[h2-1.4.200.jar:1.4.200]
    at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) ~[HikariCP-4.0.3.jar:na]
    at org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:261) ~[spring-jdbc-5.3.14.jar:5.3.14]
    ... 28 common frames omitted

I tried searching for solutions whether it might be reserved words affecting my program or adding DATABASE_TO_UPPER=FALSE in my spring.datasource.url but I still get the same error that it wouldn't be able to find my updatedBy column.我尝试搜索解决方案,无论它可能是影响我的程序的保留字还是在我的 spring.datasource.url 中添加 DATABASE_TO_UPPER=FALSE 但我仍然遇到相同的错误,它无法找到我的 updatedBy 列。

Please criticize me if i'm doing something wrong or missing any spring boot info.如果我做错了什么或缺少任何 spring 引导信息,请批评我。

Ok nevermind.好的不要紧。 I found a solution that worked for me.我找到了一个适合我的解决方案。 I put @Column(name = " ") on my Student.java class on all my values and that way the columns were read through data.sql file.我将 @Column(name = " ") 放在我的 Student.java class 上我的所有值上,这样列就可以通过 data.sql 文件读取。 Sorry for the inconvenience everyone, If there is an alternative way or still an error I need to fix.给大家带来的不便深表歉意,如果有替代方法或仍有错误我需要修复。 please feel free to contribute.请随时贡献。

Thank you谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.h2.jdbc.JdbcSQLSyntaxErrorException:找不到列“USER0_.PROFILE_ID”; SQL 声明: - org.h2.jdbc.JdbcSQLSyntaxErrorException : Column "USER0_.PROFILE_ID" not found; SQL statement: org.h2.jdbc.JdbcSQLSyntaxErrorException:SQL 语句中的语法错误 - org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement 引起:org.h2.jdbc.JdbcSQLSyntaxErrorException:Function “SYSUTCDATETIME”未找到; SQL 声明:[90022-200] - Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Function "SYSUTCDATETIME" not found; SQL statement:[90022-200] Spring SQL:org.h2.jdbc.JdbcSQLSyntaxErrorException:SQL 语句中的语法错误“;预期为“标识符”,使用 INSERT INTO 时 - Spring SQL: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "; expected "identifier", when using INSERT INTO 如何修复 org.h2.jdbc.JdbcSQLSyntaxErrorException:SQL 语句中的语法错误需要“标识符” - How to fix org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement expected "identifier" Spring JPA H2 数据库获取 org.h2.jdbc.JdbcSQLSyntaxErrorException 未找到表 - Spring JPA H2 database get org.h2.jdbc.JdbcSQLSyntaxErrorException Table not found H2版本升级后org.h2.jdbc.JdbcSQLSyntaxErrorException - org.h2.jdbc.JdbcSQLSyntaxErrorException after H2 version upgrade 插入时间戳记时,H2 org.h2.jdbc.JdbcSQLSyntaxErrorException - H2 org.h2.jdbc.JdbcSQLSyntaxErrorException when inserting a Timestamp org.h2.jdbc.JdbcSQLSyntaxErrorException h2 数据库 java - org.h2.jdbc.JdbcSQLSyntaxErrorException h2 database java org.h2.jdbc.JdbcSQLException:未找到架构“MYAPP”; SQL语句 - org.h2.jdbc.JdbcSQLException: Schema “MYAPP” not found; SQL statement
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM