Spring - JPA - 插入 - 不传递具有默认值的字段的值会引发错误

dsa*_*ish 5 java spring jpa spring-data-jpa

表中的一些不可为空的字段具有默认值。通过 JPA 将新行插入表时,我不想为这些字段传递任何值,以便它们获得默认值。但是,当通过 Spring JPA 存储库类插入新行时,出现无法插入空值的错误。我注意到 JPA 发送到数据库的插入语句列出了所有字段:

insert into table (field1, field2, field3) values ('abc',null,null);
Run Code Online (Sandbox Code Playgroud)

由于field2和field3指定了null,因此未分配默认值,数据库会抛出无法插入null值的错误。有解决方法吗?

Nay*_*kar 5

您可以尝试配置不应保留的insertable属性@Column并将其从插入语句中排除。

来自文档 -insertable : (Optional) Whether the column is included in SQL INSERT statements generated by the persistence provider.