我在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"
错误是关于什么的?为什么不能生成表?
答案 0 :(得分:0)
尝试使用@GeneratedValue(strategy=GenerationType.AUTO)
。也许H2不支持身份机制。
答案 1 :(得分:0)
POJO(实体类)中的代码很好,无需进行任何更改。需要从spring.jpa.hibernate.naming.physical-strategy
下的bootstrap.yml
文件或application.yml
文件(当不考虑bootstrap.yml
时)src/test/resources
文件中提供spring:
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
参数。
stringr::str_replace_all(str, ref)