diff --git a/hutool-extra/src/main/java/cn/hutool/extra/validation/ValidationUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/validation/ValidationUtil.java index 7c8fa8857..5dd2c95fb 100755 --- a/hutool-extra/src/main/java/cn/hutool/extra/validation/ValidationUtil.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/validation/ValidationUtil.java @@ -2,10 +2,7 @@ package cn.hutool.extra.validation; import cn.hutool.extra.validation.BeanValidationResult.ErrorMessage; -import jakarta.validation.ConstraintViolation; -import jakarta.validation.Validation; -import jakarta.validation.Validator; -import jakarta.validation.ValidatorFactory; +import jakarta.validation.*; import java.util.Set; @@ -52,6 +49,22 @@ public class ValidationUtil { return validator.validate(bean, groups); } + /** + * 校验对象,校验不通过,直接抛出给调用者 + * 说明:如果Bean对象内部有非基本类型对象,需要把内部对象取出,进行手动多次调用,本方法 + * @param object 待校验对象 + * @param groups 待校验的组 + * @throws ValidationException 校验不通过,则报 ValidationException 异常,调用者进行捕获,直接响应给前端用户 + */ + public static void validateThrowException(Object object, Class... groups) + throws ValidationException { + Set> constraintViolations = validator.validate(object, groups); + if (!constraintViolations.isEmpty()) { + ConstraintViolation constraint = constraintViolations.iterator().next(); + throw new ValidationException(constraint.getMessage()); + } + } + /** * 校验bean的某一个属性 *