[英]org.h2.jdbc.JdbcSQLSyntaxErrorException : Column "USER0_.PROFILE_ID" not found; SQL statement:
[英]org.h2.jdbc.JdbcSQLSyntaxErrorException: Column not found; SQL statement [SPRINGBOOT]
我最近開始使用 Spring 引導:我目前正在使用:
我的目標:顯示我的每個學生(模型)值各自的類型:
前任:
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...
}
我正在使用的依賴項:
<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 可以正常工作,但在 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');
下圖是 H2-Console 中顯示的內容,您注意到 DEPARTMENT 和 NAME 列已交換:
但如果我使用以下數據運行 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');
我收到一條錯誤消息:
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
我嘗試搜索解決方案,無論它可能是影響我的程序的保留字還是在我的 spring.datasource.url 中添加 DATABASE_TO_UPPER=FALSE 但我仍然遇到相同的錯誤,它無法找到我的 updatedBy 列。
如果我做錯了什么或缺少任何 spring 引導信息,請批評我。
好的不要緊。 我找到了一個適合我的解決方案。 我將 @Column(name = " ") 放在我的 Student.java class 上我的所有值上,這樣列就可以通過 data.sql 文件讀取。 給大家帶來的不便深表歉意,如果有替代方法或仍有錯誤我需要修復。 請隨時貢獻。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.