Your use of the annotations is just fine. There's a validator implementation for each of those rest assured.
However, at some point you need to trigger the validation of this POJO. If it were an @Entity
it would be your JPA provider which triggers validation, in your case you need to do it yourself.
There's a nice documentation for Hibernate Validator which is the reference implementation for JSR-303.
Example
public class Car {
@NotNull
@Valid
private List<Person> passengers = new ArrayList<Person>();
}
Using Car
and validating:
Car car = new Car( null, true );
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<Car>> constraintViolations = validator.validate( car );
assertEquals( 1, constraintViolations.size() );
assertEquals( "may not be null", constraintViolations.iterator().next().getMessage() );
You may also want to read how bean validation is integrated with other frameworks (JPA, CDI, etc.).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…