【问题标题】:Java @Id without @column(nullable=false)Java @Id 没有 @column(nullable=false)
【发布时间】:2018-01-08 20:12:28
【问题描述】:

@Id 注释在数据库中添加两个约束我说得对吗:

  • nullable=false
  • 唯一=真

? 我在网上看到很多例子,语法类似

@Id
@Column(name="xxx",nullable=false)
BigInteger id

正确吗?我真的需要这个 nullable=false 吗?

【问题讨论】:

标签: java hibernate


【解决方案1】:

是的,你是对的。如果使用 hibernate 模式生成机制,数据库中的所有 @Id 列将默认为 NOT NULL 并且具有唯一索引。

另一方面,如果您以任何其他方式创建架构,@Column(nullable=false) 声明绝对没有意义。

【讨论】:

    【解决方案2】:

    您可能会同时看到这两者的一个原因是@Column 上的 name 属性。在 JPA 提供的默认名称的情况下,它的 name 属性允许您在结果表中显式选择列的名称。我有时会专门为此目的使用@Column,这样我就可以给我的专栏起一个特定的名称。

    至于 nullable 属性,我同意你的看法。在那种情况下它一文不值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 2011-02-23
      • 2014-09-11
      • 2013-02-17
      • 2017-06-16
      • 2011-11-18
      相关资源
      最近更新 更多