Hibernate @基本(可选=false)vs@Column(可空=false)vs@NotNull
在这三个选项中,我应该使用一个、两个还是全部三个选项来防止空值Hibernate @基本(可选=false)vs@Column(可空=false)vs@NotNull,hibernate,validation,jpa,jsr,Hibernate,Validation,Jpa,Jsr,在这三个选项中,我应该使用一个、两个还是全部三个选项来防止空值 @NotNull @Column(name = "SOME_VALUE", nullable = false) @Basic(optional = false) private String someValue; 注意,我不认为这是一个现存问题的重复。< /强>我看到询问这三个选项的一个子集,但还没有找到一个询问三个选项中哪一个适合在现代JPA/Hibernate堆栈中使用。 < P> @ NothNo. 属于javax.va
@NotNull
@Column(name = "SOME_VALUE", nullable = false)
@Basic(optional = false)
private String someValue;
<强>注意,我不认为这是一个现存问题的重复。< /强>我看到询问这三个选项的一个子集,但还没有找到一个询问三个选项中哪一个适合在现代JPA/Hibernate堆栈中使用。
< P><强> @ NothNo.<强>javax.validation.constraints
包李>
javax.persistence
包javax.persistence
包可能是@Zeus的重复,我已经解释了为什么我认为这不是那个问题的重复。如果您使用的是验证器,
@NotNull
将在进行查询之前生成一个异常。如果您使用的是@Column(nullable=false)
并且您使用JPA生成表,那么在插入/更新时将出现异常@Basic(optional=false)
也在架构生成过程中使用,因此在插入/更新时由于约束冲突而生成异常,与@Column(nullable=false)
相同。一般来说,自动验证会产生比预期更没有意义的错误消息,因此您可能需要手动执行。