I've seen that for a specific property, such as title from
the Book class, two annotations are used to specify a
not-null constraint: @Column( nullable = false) and
@NotNull. Is this really necessarily or it is sufficient to
use just one of them? And in case that one is sufficient, then, which one
should we use?
Wed, 09/23/2015 - 09:36
#1
Constraint validation and bean validation


Both annotations have to be used for our/your specific example. The
@Column( nullable = false)annotation, part of the JPA API, is used as a restriction for the database column associated with that specific (titlein your example) class property, e.g., used when the database schema is generated. The@NotNullannotation is part of the Java Validation API and it is used to validate (check not-null constraint) the property no matter if the related object is then saved to the database or not. Also, when using JSF for your web application, it is easy to catch the validation errors, and possibly display error messages, which results from the Validation API, e.g.,@NotNullfrom your example.