首页 > 解决方案 > SpringBoot 和 H2 自动生成的字段

问题描述

我在 POJO 上有一个字段

@Id
@Column(name="TAG_ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer tagId;

当我使用 H2 作为数据库启动服务时,出现此错误:

Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE TABLE TAG (TAG_ID NUMBER(10,0) GENERATED AS[*] IDENTITY, etc... PRIMARY KEY (TAG_ID)) "; expected "ALWAYS, BY"; SQL statement:
create table tag (tag_id number(10,0) generated as identity, etc... primary key (tag_id)) [42001-197]

这个expected "ALWAYS, BY"错误是关于什么的?为什么它不能生成表格?

标签: hibernatespring-bootjpah2

解决方案


尝试使用@GeneratedValue(strategy=GenerationType.AUTO). 也许 H2 不支持身份机制。


推荐阅读