在 Spring 项目中使用生成的 SQL 查询创建 H2 数据库时出现异常
Exception when creating H2 database with generated SQL query in Spring project
我在我的项目中使用 spring 和 H2 数据库,我创建了简单的实体,
但是当我尝试启动我的应用程序时,我得到了这个:
Syntax error in SQL statement "CREATE TABLE T_TRANSACTION (ID BIGINT GENERATED BY DEFAULT AS IDENTITY, AMOUNT INTEGER NOT NULL, FROM[*] VARCHAR(255), TO VARCHAR(255), PRIMARY KEY (ID))"; expected "identifier"; SQL statement: create table t_transaction (id bigint generated by default as identity, amount integer not null, from varchar(255), to varchar(255), primary key (id))
我的实体:
@Entity
@Table(name = "t_transaction")
class Transaction{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private val id: Long? = null
var from: String? = null
var to: String? = null
var amount = 0
}
应用程序属性:
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:Db;DB_CLOSE_DELAY=-1
我也在其他实体中使用相同的 id 生成方法,但我没有得到相同的错误。
from
是保留的 SQL 关键字。尝试将其更改为其他内容。
如果您看到生成的查询,它会将 FROM 视为与提示不同的 FROM[*] VARCHAR(255)
。
我在我的项目中使用 spring 和 H2 数据库,我创建了简单的实体,
但是当我尝试启动我的应用程序时,我得到了这个:
Syntax error in SQL statement "CREATE TABLE T_TRANSACTION (ID BIGINT GENERATED BY DEFAULT AS IDENTITY, AMOUNT INTEGER NOT NULL, FROM[*] VARCHAR(255), TO VARCHAR(255), PRIMARY KEY (ID))"; expected "identifier"; SQL statement: create table t_transaction (id bigint generated by default as identity, amount integer not null, from varchar(255), to varchar(255), primary key (id))
我的实体:
@Entity
@Table(name = "t_transaction")
class Transaction{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private val id: Long? = null
var from: String? = null
var to: String? = null
var amount = 0
}
应用程序属性:
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:Db;DB_CLOSE_DELAY=-1
我也在其他实体中使用相同的 id 生成方法,但我没有得到相同的错误。
from
是保留的 SQL 关键字。尝试将其更改为其他内容。
如果您看到生成的查询,它会将 FROM 视为与提示不同的 FROM[*] VARCHAR(255)
。