在三个选项中,我应该使用一个或两个还是全部三个组合来防止空值?
@NotNull
@Column(name = "SOME_VALUE", nullable = false)
@Basic(optional = false)
private String someValue;
请注意,我不认为这是现有问题的重复。我看到many questions询问这三个选项中的一部分,但还没有找到一个询问三者中哪一个适合在现代JPA / Hibernate堆栈中使用。
答案 0 :(得分:0)
@NotNull
javax.validation.constraints
软件包。 由验证引擎(VE)处理。
如果未设置属性(或将其设置为null),则在持久化时VE会引发异常。
因为属性验证是 由VE处理,在诸如UI等非持久层中很有用 层(JSF)。
@Basic(可选= false)
javax.persistence
软件包。@Column(nullable = false)
javax.persistence
软件包。java.sql
异常传递给程序。