【问题标题】:In JPA, what does setting a column's nullable to false actually do?在 JPA 中,将列的可空值设置为 false 实际上有什么作用?
【发布时间】:2021-01-07 03:53:25
【问题描述】:

在 JPA 中,如果列不可为空,则它必须具有默认值。所以如果我说

@Column(nullable=false)
Boolean isExpired;

defaulttrue 还是false?如果它是IntegerLongString 怎么办?有什么方法可以指定吗?

【问题讨论】:

标签: java jpa


【解决方案1】:

@Column(nullable=false) 只是意味着您应该在插入或更新时始终为该字段提供值。如果你想指定一个默认值,你可以随时添加:

 @Column(columnDefinition = "boolean default false")

但是根据您的问题,如果您不为该字段定义特定值(通过 columnDefinition),它仍然是null,并且如果它为空,则会在数据库插入或更新期间提示错误。

【讨论】:

  • 在使用JPA时,最好使用Java初始化expired = false
  • 据我所知,JPA @Column 注释没有过期属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多