不带@column的Java@Id(nullable=false)

不带@column的Java@Id(nullable=false),java,hibernate,Java,Hibernate,@Id注释在数据库中添加了两个约束,对吗 nullable=false 唯一=真 ?? 我在网上看到了很多语法如下的例子 @Id @Column(name="xxx",nullable=false) BigInteger id 这是正确的吗?我真的需要这个null=false吗?是的,你是对的。如果使用hibernate架构生成机制,则数据库中的所有@Id列都将不为NULL,并且默认情况下具有唯一索引 另一方面,如果您以任何其他方式创建架构,@Columnnullable=false声明是毫无

@Id注释在数据库中添加了两个约束,对吗

nullable=false 唯一=真 ?? 我在网上看到了很多语法如下的例子

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

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

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


另一方面,如果您以任何其他方式创建架构,@Columnnullable=false声明是毫无意义的。

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


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

相关:提到了@Id注释,但没有回答我的特定问题