public class Test {
private static Validator validator;
static {
// validator = Validation.buildDefaultValidatorFactory().getValidator();
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
.configure()
// 快速失败模式
.failFast(false)
.buildValidatorFactory();
validator = validatorFactory.getValidator();
}public static <T> ValidationResult validateEntity(T obj) {
//解析校验结果
try {
Set<ConstraintViolation<T>> validateSet = validator.validate(obj, Default.class);
return buildValidationResult(validateSet);
} catch (Exception e) {
log.error(e.getMessage(), e);
return null;
}
}private static <T> ValidationResult buildValidationResult(Set<ConstraintViolation<T>> validateSet) {
ValidationResult validationResult = new ValidationResult();
if (!validateSet.isEmpty()) {
validationResult.setHasErrors(true);
Map<String, String> errorMsgMap = new HashMap<>();
for (ConstraintViolation<T> constraintViolation : validateSet) {
errorMsgMap.put(constraintViolation.getPropertyPath().toString(), constraintViolation.getMessage());
}
validationResult.setErrorMsg(errorMsgMap);
}
return validationResult;
}
}
用Test.validateEntity(传相应的实体)能够输出相应的结果。
c1 c1 = new c1();
ValidationResult validationResult = Test.validateEntity(c1);
log.info(JSON.toJSONString(validationResult));
验证实体类上的注释
最新推荐文章于 2024-07-28 19:41:52 发布