在Spring项目中使用生成的SQL查询创建H2数据库时发生异常



我在项目中使用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)一样,这是一个提示。

最新更新