2016-11-30 77 views
0

我想通过使用Spring Boot和Hibernate Validator进行字段验证,而不需要保存数据。Spring Boot Hibernate约束验证器

public class RoomDto { 

    private long id; 

    @Expose 
    private int beds; 

    @Expose 
    private double size; 

    @Expose 
    @NotNull 
    private String flatBasicStringDto; 
} 

我从JSON使用GSON解析DTO:

RoomDto guestRoom = this.jsonParser.read(RoomDto.class, "/files/input/room.json"); 

我想获得一个错误,当flatBasicStringDto在JSON文件丢失。

我已经尝试了许多配置,但目前为止没有任何工作。

spring.jpa.properties.javax.persistence.validation.group.pre-persist=javax.validation.groups.Default 

任何想法如何处理这个问题?

回答

1

您可以使用使用@valid注释的方法级别验证。但是,您需要使用DI容器来使用验证框架。一个使用弹簧的综合例子是http://www.mkyong.com/spring-mvc/spring-3-mvc-and-jsr303-valid-example/

如果你不想使用DI containter,你可以使用像这样得到验证错误:

ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); 
Validator validator = factory.getValidator(); 
Set<ConstraintViolation<RoomDto>> errors = validator.validate(guestRoom); 
+0

辉煌的答案!这两个建议工作正常。看来我一直在使用错误的方法。谢谢! –