为什么要指定@Column(nullable = false)?
我有一个带注释的实体@Entity
。
如果我负责创建CREATE TABLE
脚本,为什么要指定@Column( nullable = false )
何时可以使用NOT
NULL关键字在数据库中创建列?是否有任何示例显示在字段中使用此属性的好处?
回答:
更好的错误消息和错误处理,尤其是如果您还添加了JSR303
@NotNull批注。
如果您将列创建为,NOT
NULL但不告诉JPA它不是null,则JPA会假定null值可以。当您尝试使用空值保存对象时,它将继续将其发送到数据库,并且您会收到数据库级别的错误。这会增加数据库中的日志垃圾邮件,并且从错误中很难确定哪个表的哪一列是问题,更不用说将它们映射回其JPA名称了。
如果将它们注释为非null,则JPA将在保存之前引发异常,避免DB日志垃圾邮件,并且通常会给您带来更好的错误。特别是,如果你的JPA提供支持JSR303,要么转化nullable=false
为@NotNull
内部或你添加@NotNull
过,它会给你一个数据结构,你可以检查,看看是什么对象被拒绝的原因是什么什么领域,具有自定义模板一起错误消息。
这就是为什么您应该向JPA告知有关NOT NULL
字段的原因。这样,其他编写您的代码的人就更容易理解,而不必阅读数据库模式。
以上是 为什么要指定@Column(nullable = false)? 的全部内容, 来源链接: utcz.com/qa/401985.html