【问题标题】:JPA won't set default value to boolean column in Postgres databaseJPA 不会将默认值设置为 Postgres 数据库中的布尔列
【发布时间】:2021-12-24 02:47:43
【问题描述】:

我正在尝试将新列添加到默认值为“false”的表中。

我试过了

private boolean fo_create = false;

@Builder.Default
private Boolean fo_created = Boolean.false;

@Column(columnDefinition = "boolean default false")
private boolean fo_created = false;

但这些都不起作用。使用“Boolean”类型时,列已创建但仍为空。对于 boolean 类型,JPA 会抛出一个错误并告诉它不能将 boolean 设置为 null(尽管我将默认值指定为 false)

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 如果数据库中的值可以为空,则必须使用布尔值。你如何装箱?

标签: postgresql spring-boot jpa spring-data-jpa


【解决方案1】:

实体类代码

package com.example.demo.Entity;

import java.math.BigInteger;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import lombok.Data;

/**
 * @author Sathiyaraj Ramamurthy 16 Nov 2021 5:47:26 AM
 *
 */
@Data
@Entity
@Table(name = "event")
public class EventDemo {
    @Id
    @Column(name="id")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long id;
    @Column(name = "event_name")
    private String eventName;
    @Column(name = "status", columnDefinition="tinyint(1) default 1")
    private boolean status;
}

邮递员请求详情

我正在使用 MySQL 数据库。我相信它也可以在 Postgres 中使用

【讨论】:

    猜你喜欢
    • 2011-05-29
    • 2015-03-28
    • 2020-05-21
    • 2015-01-11
    • 2016-12-22
    • 2014-06-03
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多