Using Java EE 6 Bean Validation

前端 未结 2 1900
旧巷少年郎
旧巷少年郎 2020-12-06 14:58

I am trying to use Java EE 6 Validation as specified here

http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html

I have annotated a simple field

         


        
2条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-06 15:58

    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 passengers = new ArrayList();
    }
    

    Using Car and validating:

    Car car = new Car( null, true );
    
    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();
    Set> 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.).

提交回复
热议问题