Recalling the first approach, and rather than programmatically creating the validator object by creating a ValidatorFactory using the Validation class and so on, you can simply inject the Validator object as a dependency using the CDI, as shown in the following example:
@RequestScoped public class MovieBean { @PersistenceContext(name = "jpa-examplesPU") private EntityManager entityManager; @Inject private Validator validator; public void validateMovie() { Movie movie = new Movie(); Set<ConstraintViolation<Movie>> violations = validator.validate(movie); for (ConstraintViolation<Movie> violation : violations) { System.out.println(violation.getPropertyPath()); System.out.println(violation.getMessage()); } } }
As you see...