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

Annotations @Column( nullable = false ) vs @NotNull difference

I readed this.但是并没有给ma一个明确的用法答案

当我创建 table 和列时。

案例 1:

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

案例2:

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

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

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

@NotNull 与 Java 相关。 Java 未设置此属性时将抛出异常。不需要数据库上下文。

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

之前检查 @NotNull