注释@Column(nullable = false)vs @NotNull的区别

时间:2017-11-30 08:02:35

标签: java spring jpa bean-validation

I readed this.但它没有给出明确的用法答案。

当我创建表格和列时。

情况1:

@Column(nullable = false, length = 14)
@NotNull
private String something;

情况2:

@Column(length = 14)
@NotNull
private String something;

不一样吗?我的意思是@NotNull会提前抛出异常,所以有理由做nullable = false列吗?

1 个答案:

答案 0 :(得分:2)

@Column与数据库相关。如果从Java代码自动创建数据库模式,那么nullable = false将确保创建一个NOT NULL列,如果有其他应用程序访问您的数据库,该列应该很有用。此外,您的应用可能会在将数据发送到数据库之前检查此约束。

@NotNull与Java有关。如果未设置此属性,Java将抛出异常。没有必要的数据库上下文。

这两个注释听起来都很相似,但却有两个不同的用途。可能有些库会自动从另一个中推断出一个注释,但您始终可以使用这两个注释。当你这样做时,将在@Column之前检查@NotNull。