一尘不染

困惑:使用JPA和Hibernate的@NotNull与@Column(nullable = false)

hibernate

  1. 当它们出现在的字段/获取器上时,它们@Entity之间有什么区别?(我通过 Hibernate 保留了Entity )。

  2. 它们每个都属于什么框架和/或规范?

  3. @NotNull位于中javax.validation.constraints。在javax.validation.constraints.NotNulljavadoc中说

带注释的元素不能为null

但是它没有说数据库中元素的表示形式,那么为什么nullable=false要在列中添加约束呢?


阅读 1244

收藏
2020-06-20

共1个答案

一尘不染

@NotNullJSR 303
Bean验证
批注。它与数据库约束本身无关。由于Hibernate是JSR
303的参考实现,因此它会智能地选择这些约束并将它们转换为数据库约束,因此您只需付出1即可获得两个。@Column(nullable = false)是JPA声明列为非空的方法。即前者用于验证,而后者则用于指示数据库模式详细信息。您将从Hibernate的验证批注中获得一些额外的(欢迎使用!)帮助。

2020-06-20