没有data.sql
,一切正常。
我正在使用Spring Boot 2和H2数据库。
但是当我尝试使用author
初始化data.sql
表时,出现了错误:
Caused by: org.h2.jdbc.JdbcSQLException:
NULL not allowed for column "ID"; SQL statement: insert into author (`name`) values ('Pushkin')
这里是Author
实体:
@Entity
public class Author {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;
@Column(unique=true)
private String name;
//getters/setters/constructors
}
这里是data.sql
:
insert into author (`name`) values ('Pushkin');
答案 0 :(得分:2)
仅当您使用JPA / Hibernate存储实体时,UUIDGenerator才起作用。
在data.sql中执行普通SQL时,不使用Hibernate。 您必须遵循JB Nizet http://www.h2database.com/html/functions.html#random_uuid
的建议答案 1 :(得分:0)
首先,请检查您要生成的ID在数据库中是否勾选了自动递增,然后在下面的@ID中写入, @GeneratedValue(策略= GenerationType.IDENTITY)。它将使您的ID唯一。