add method

This commit is contained in:
Looly 2022-12-05 23:19:49 +08:00
parent edfe694d54
commit 7354e9c5af

View File

@ -1,5 +1,6 @@
package cn.hutool.extra.validation; package cn.hutool.extra.validation;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.extra.validation.BeanValidationResult.ErrorMessage; import cn.hutool.extra.validation.BeanValidationResult.ErrorMessage;
import jakarta.validation.*; import jakarta.validation.*;
@ -23,7 +24,7 @@ public class ValidationUtil {
private static final Validator validator; private static final Validator validator;
static { static {
try(final ValidatorFactory factory = Validation.buildDefaultValidatorFactory()){ try (final ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
validator = factory.getValidator(); validator = factory.getValidator();
} }
} }
@ -52,15 +53,16 @@ public class ValidationUtil {
/** /**
* 校验对象,校验不通过直接抛出给调用者 * 校验对象,校验不通过直接抛出给调用者
* 说明如果Bean对象内部有非基本类型对象需要把内部对象取出进行手动多次调用,本方法 * 说明如果Bean对象内部有非基本类型对象需要把内部对象取出进行手动多次调用,本方法
* @param object 待校验对象 *
* @param groups 待校验的组 * @param object 待校验对象
* @throws ValidationException 校验不通过则报 ValidationException 异常调用者进行捕获直接响应给前端用户 * @param groups 待校验的组
* @throws ValidationException 校验不通过则报 ValidationException 异常调用者进行捕获直接响应给前端用户
*/ */
public static void validateThrowException(Object object, Class<?>... groups) public static void validateAndThrowFirst(final Object object, final Class<?>... groups)
throws ValidationException { throws ValidationException {
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups); final Set<ConstraintViolation<Object>> constraintViolations = validate(object, groups);
if (!constraintViolations.isEmpty()) { if (CollUtil.isNotEmpty(constraintViolations)) {
ConstraintViolation<Object> constraint = constraintViolations.iterator().next(); final ConstraintViolation<Object> constraint = constraintViolations.iterator().next();
throw new ValidationException(constraint.getMessage()); throw new ValidationException(constraint.getMessage());
} }
} }
@ -93,7 +95,7 @@ public class ValidationUtil {
/** /**
* 校验bean的某一个属性 * 校验bean的某一个属性
* *
* @param <T> bean类型 * @param <T> bean类型
* @param bean bean * @param bean bean
* @param propertyName 属性名称 * @param propertyName 属性名称
* @param groups 验证分组 * @param groups 验证分组