我是对的,@ Id注释在数据库中添加了两个约束:
? 我在互联网上看到了很多像
这样的语法的例子@Id
@Column(name="xxx",nullable=false)
BigInteger id
这是对的吗?我真的需要这个nullable = false吗?
答案 0 :(得分:1)
是的,你是对的。如果使用hibernate模式生成机制,则数据库中的所有@Id列都将为NOT NULL并且默认情况下具有唯一索引。
另一方面,如果您以任何其他方式创建架构,@Column(nullable=false)
声明绝对毫无意义。
答案 1 :(得分:0)
您可能会同时看到两者的一个原因是 @Column
上的 name 属性。在 JPA 提供的默认名称的情况下,它的 name 属性允许您显式选择结果表中列的名称。有时我会仅出于此目的使用 @Column
,这样我就可以为我的专栏取一个特定的名称。
至于 nullable 属性,我同意你的看法。在这种情况下,它毫无价值。