I readed this.但它没有给出明确的用法答案。
当我创建表格和列时。
情况1:
@Column(nullable = false, length = 14)
@NotNull
private String something;
情况2:
@Column(length = 14)
@NotNull
private String something;
不一样吗?我的意思是@NotNull会提前抛出异常,所以有理由做nullable = false列吗?
答案 0 :(得分:2)
@Column与数据库相关。如果从Java代码自动创建数据库模式,那么nullable = false将确保创建一个NOT NULL列,如果有其他应用程序访问您的数据库,该列应该很有用。此外,您的应用可能会在将数据发送到数据库之前检查此约束。
@NotNull与Java有关。如果未设置此属性,Java将抛出异常。没有必要的数据库上下文。
这两个注释听起来都很相似,但却有两个不同的用途。可能有些库会自动从另一个中推断出一个注释,但您始终可以使用这两个注释。当你这样做时,将在@Column之前检查@NotNull。