2016-11-30 80 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

輝煌的答案!這兩個建議工作正常。看來我一直在使用錯誤的方法。謝謝! –