【问题标题】:NULL inserted instead of default column value插入 NULL 而不是默认列值
【发布时间】:2016-08-30 20:11:35
【问题描述】:

我的 MySQL 数据库中有一个表,其中包含一个具有默认值的列 status,使用 phpMyAdmin 在数据库端定义。当我使用 Hibernate 插入新行时,出现此错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 列“状态”不能为空

我需要做更多的事情来使用默认值吗?

实体

@Entity
class Purchase {

    //More fields
    private String status;

    @Basic
    public String getStatus() {
        return status;
    }

}

【问题讨论】:

  • 你应该在实体中设置status一个默认值,或者你可以使用sql插入没有fileld的记录status

标签: mysql hibernate


【解决方案1】:

使用字段的默认值

private String status = "Default";

或使用@PrePersist Annotion,

@PrePersist
public void prePersist() {
    if(status == null)
        status = "Default value";
}

【讨论】:

    猜你喜欢
    • 2020-10-12
    • 2011-07-20
    • 2015-05-27
    • 2014-11-19
    • 1970-01-01
    • 2011-04-12
    • 2013-12-29
    • 2011-06-17
    • 2011-08-24
    相关资源
    最近更新 更多