Spring Boot Hibernate Constraint Validator

时间:2016-11-30 11:33:33

标签: json spring-boot gson hibernate-validator

我想通过使用Spring Boot和Hibernate Validator进行字段验证而不持久化数据。

public class RoomDto {

    private long id;

    @Expose
    private int beds;

    @Expose
    private double size;

    @Expose
    @NotNull
    private String flatBasicStringDto;
}

我使用GSON从JSON解析DTO:

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

我想在JSON文件中缺少flatBasicStringDto时出错。

我尝试了很多配置但到目前为止没有任何工作。

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

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

1 个答案:

答案 0 :(得分:1)

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

如果您不想使用DI封装器,可以使用类似的方法来获取验证错误:

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