java - Spring Boot JPA @ColumnDefault 在 PostgreSQL 上被错误解释 : ERROR: cannot use column reference in DEFAULT expression

标签 java postgresql spring-boot

我正在更新我的 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/

相关文章:

java - 所有安卓设备都有文件夹 "sdcard"吗?

java - 无法解析方法 'super(?,java.lang.String, com.android.volley.Response.Listener<java.lang.String>,null)'

java - IntelliJ Idea 社区版中的 cucumber 支持?

postgresql - 在 Ansible Playbook 中指定 PostgreSQL 密码

ruby-on-rails - 在 Rails 中使用数据库列别名时出现 NoMethodError

java - 读取 Spring RestTemplate 调用超时

java - 在 Linux 中作为服务安装的 Spring-Boot 应用程序无法共享 postgresql 数据库

java - 停止显示一个窗口直到它被完全绘制?

postgresql - PostgreSQL 在什么时候开始恢复

java - 我执行了dao层的mybatis update方法,但是数据库没有更新