为什么非空 postgres 列默认抛出约束错误?

问题描述 投票:0回答:2

在 Postgres 中,我有一个默认设置为 false 的非空列。我正在使用 spring boot JPA/hibernate java 应用程序写入此表。我的理解是默认值,如果传递 null,则应将其设置为默认值。但我收到以下异常。字符等其他类型似乎有效。如果传递 null,我如何让它正确使用默认值?

postgresql jpa null default-value
2个回答
3
投票

如果没有为该列传递值,则使用默认值,而不是如果显式传递

null

你没有分享你的 Hibernate 代码,所以我不能对它发表评论,但你需要更改查询,以便它会 omit

is_custom
语句中的
insert
列。


0
投票

如果您希望数据库使用您为列设置的默认值,您可以使用实体变量来执行此操作。

@Column(name = "is_custom", insertable = false)

这将从插入中删除该列,数据库将从您的表定义中分配默认值。

另一种方法是将默认值设置为列定义。

@Column(name = "is_custom", columnDefinition = "boolean default false")

© www.soinside.com 2019 - 2024. All rights reserved.