我想通过使用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
有任何想法如何处理这个问题?
答案 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);