当它们出现在 a 的字段/吸气剂上时@Entity,它们之间有什么区别? (我通过Hibernate 持久化实体)。
@Entity
它们各自属于什么框架和/或规范?
@NotNull位于 内javax.validation.constraints。在javax.validation.constraints.NotNulljavadoc中它说
@NotNull
javax.validation.constraints
javax.validation.constraints.NotNull
带注释的元素不能为空
但它并没有说明元素在数据库中的表示,那么为什么我nullable=false要在列中添加约束呢?
nullable=false
@NotNull是一个JSR 303 Bean Validation注解。它与数据库约束本身无关。然而,由于 Hibernate 是 JSR 303 的参考实现,它智能地获取这些约束并将它们转换为您的数据库约束,因此您以一个的价格获得两个。@Column(nullable = false)是声明列不为空的 JPA 方式。即前者用于验证,后者用于指示数据库模式详细信息。您只是从 Hibernate 获得了一些关于验证注释的额外(欢迎!)帮助。
@Column(nullable = false)