在 Postgres 中,我有一个默认设置为 false 的非空列。我正在使用 spring boot JPA/hibernate java 应用程序写入此表。我的理解是默认值,如果传递 null,则应将其设置为默认值。但我收到以下异常。字符等其他类型似乎有效。如果传递 null,我如何让它正确使用默认值?
如果没有为该列传递值,则使用默认值,而不是如果显式传递
null
。
你没有分享你的 Hibernate 代码,所以我不能对它发表评论,但你需要更改查询,以便它会 omit
is_custom
语句中的 insert
列。
如果您希望数据库使用您为列设置的默认值,您可以使用实体变量来执行此操作。
@Column(name = "is_custom", insertable = false)
这将从插入中删除该列,数据库将从您的表定义中分配默认值。
另一种方法是将默认值设置为列定义。
@Column(name = "is_custom", columnDefinition = "boolean default false")