为什么要指定@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

回到顶部