【问题标题】:Spring Boot Hibernate Constraint ValidatorSpring Boot Hibernate 约束验证器
【发布时间】:2017-04-14 17:07:48
【问题描述】:

我想通过使用 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

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

【问题讨论】:

    标签: json spring-boot gson hibernate-validator


    【解决方案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);
    

    【讨论】:

    • 出色的答案!这两个建议都很好。看来我一直在使用错误的方法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多