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);
我想使用 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);