Java Hibernate:如果实体字段为空且db字段包含默认值,则不插入数据

Java Hibernate:如果实体字段为空且db字段包含默认值,则不插入数据,java,sql,database,hibernate,spring-mvc,Java,Sql,Database,Hibernate,Spring Mvc,实体中我的一个字段如下所示: @实体 @表(name=“MY_表”) 公共类MyTable{ @列(name=“MYFIELD”) @Getter@Setter私有整数myField; } 在DB中,我更新了我的表,如下所示: ALTER TABLE MY_TABLE ADD MYFIELD integer NOT NULL默认值0; 当我尝试将数据插入此表时,我填充了除MYFIELD上的此字段之外的所有其他字段。Hibernate将尝试在该字段为空的位置进行查询。由于null,我得到以下错

实体中我的一个字段如下所示:

@实体
@表(name=“MY_表”)
公共类MyTable{
@列(name=“MYFIELD”)
@Getter@Setter私有整数myField;
}
在DB中,我更新了我的表,如下所示:

ALTER TABLE MY_TABLE ADD MYFIELD integer NOT NULL默认值0;
当我尝试将数据插入此表时,我填充了除MYFIELD上的此字段之外的所有其他字段。Hibernate将尝试在该字段为空的位置进行查询。由于null,我得到以下错误:

原因:java.sql.BatchUpdateException:Batch条目0插入MY_表
(MYFIELD)值(NULL)已中止。调用getNextException查看原因。

如果我不传递,我如何设置我的实体,使其支持并使用数据库默认值?

您能分享一下如何执行此查询吗?这里可能是您的问题,您保存的是完整对象MyTable,属性myField为null,hibernate将创建一个myField=Null的insert,默认值不会触发。您可以在java属性中默认设置为myField=0,或者仅使用@Column Annotation中带有valuesTry“insertable=false”的字段创建一个insert。@YCF_L我不知道这是什么意思?我只是在postigosql编辑器中运行这个sql命令。我指的是您的代码