Spring 启动 Hibernate 约束验证器

Spring Boot Hibernate Constraint 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

对如何处理这个问题有什么想法吗?

您可以使用@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);