Java @Id没有@column(nullable = false)

时间:2017-08-01 19:57:55

标签: java hibernate

我是对的,@ Id注释在数据库中添加了两个约束:

  • 可为空=假
  • unique = true

? 我在互联网上看到了很多像

这样的语法的例子
@Id
@Column(name="xxx",nullable=false)
BigInteger id

这是对的吗?我真的需要这个nullable = false吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

至于 nullable 属性,我同意你的看法。在这种情况下,它毫无价值。