当前位置: 首页 > 知识库问答 >
问题:

插入NULL而不是默认列值

东郭源
2023-03-14

我在MySQL数据库中有一个表,其中包含一个默认值的列状态,在数据库端使用phpMyAdmin定义。当我使用HiberNate插入新行时,我得到这个错误:

通用域名格式。mysql。jdbc。例外。jdbc4。MySQLIntegrityConstraintViolationException:列“status”不能为null

我还需要做些什么来使用默认值吗?

实体

@Entity
class Purchase {

    //More fields
    private String status;

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

}

共有1个答案

班泽语
2023-03-14

为字段使用默认值

private String status = "Default";

或者使用@PrePersist注释,

@PrePersist
public void prePersist() {
    if(status == null)
        status = "Default value";
}
 类似资料:
  • 我对Liquibase有点陌生。我遇到了一个场景,在一个中,它试图首先添加默认值,而不是旁边的空约束。 但这里的问题是两者都

  • 问题内容: 我有使用UUID的表。我希望能够插入有或没有UUID的新行,因为有时客户端有时会生成UUID。 每个表的核心是这样的: 我正在尝试使用一个函数来插入行。我希望能够提供一个NULL ID并获取默认值(生成的UUID)。我有这样的事情: 我已经试过了: 还有这个: 这有效,但是重复了gen_random_uuid()代码: 同样也可以,但是存在相同的问题: 有没有一种方法可以不必重复执行代

  • 问题内容: 我正在尝试使用多个插入(在一条语句中),并且我具有此表结构 我的查询: 由于[StudentID]列不接受NULL,因此该语句(我预期是)应该失败。问题是MySQL在第2行中插入了空字符串(’‘)…,并允许其余的继续。 问题答案: 问题: 或放 下到(然后重新启动)。

  • 列插入和更新默认值是指创建 默认值 对于一行中的特定列,INSERT或UPDATE语句正在对该行执行,如果 没有为该列的INSERT或UPDATE语句提供值 . 也就是说,如果一个表有一个名为“timestamp”的列,并且INSERT语句继续执行,但不包括该列的值,则INSERT default将创建一个新值,例如current time,用作要插入“timestamp”列中的值。如果声明 do

  • 问题内容: 我的代码中有一个,如果地图的方法返回的是空列表而不是空值,则应避免使用空指针。java API中是否有类似的东西?我应该延长吗? 问题答案: @Jon的答案是直接处理您所要询问的好方法。 但是令我惊讶的是,您可能要实现的是“多图”;即从键到值集合的映射。如果是这种情况,那么您还应该查看Guava或Apache commons集合中的multimap类。 看着: 界面和它的实施方式中,或

  • 我创建迁移是这样的: 然后我添加了一些列,比如: 然后: 这将创建表,然后在类别中插入: 这将插入行,但在列创建的 处创建的