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

标签 java spring jpa bean-validation

<分区>

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

当我创建表和列时。

案例一:

@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 将抛出异常。不需要数据库上下文。

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

关于java - 注解 @Column( nullable = false ) vs @NotNull 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47568551/

相关文章:

java - 哪个部署的 jar 包含 android.os.SystemClock?

Spring Boot - 如何获取正在运行的端口

mysql - 如何将实体值设置为不同于 jpa 数据库中的值的另一个值

java - LinkedHashMap : insert List of Strings

java - Hibernate 5 是否仍然支持 Hibernate Spatial?

ajax - 如何为 AJAX 查询返回纯文本?

java - 使用 PostgreSQL 的 JPA 继承

mysql - 使用 JPA 注释设置 Long 值的列长度

java - 从 jruby 和 warbled jar 运行之间有什么区别 "under the hood"?

java - Hibernate 进行正确的数据库查询但返回空实体