我正在更新我的 Transaction
表,以在 Spring boot JPA 中添加一个带有默认值的新列,如下所示:
@Column(nullable = false)
@org.hibernate.annotations.ColumnDefault("confirmed")
public String status;
但是如果我检查生成的 SQL 查询,它看起来像这样:
alter table Transaction add column status varchar(255) default confirmed not null
默认值现在被解释为变量,我收到此异常:
org.postgresql.util.PSQLException: ERROR: cannot use column reference in DEFAULT expression
我正在使用 PostgreSQL 12 和 Spring Boot 2.2.1.RELEASE。 我在这里做错了什么吗?
最佳答案
正如 Chrylis 罢工时所说,你需要引用你的值(value)。请参阅Hibernate docs有关为字符串列设置默认值的示例。请注意默认值是如何用双引号和单引号括起来的。
关于java - Spring Boot JPA @ColumnDefault 在 PostgreSQL 上被错误解释 : ERROR: cannot use column reference in DEFAULT expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59261427/