You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CampusVolunteer/springbootpt9c5/src/main/java/com/utils/ValidatorUtils.java

42 lines
1.3 KiB

package com.utils;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import com.entity.EIException;
/**
* Hibernate Validator 校验工具类
*/
public class ValidatorUtils {
// 单例模式下的静态 Validator 实例
private static final Validator VALIDATOR;
static {
// 初始化 Hibernate Validator 工厂
VALIDATOR = Validation.buildDefaultValidatorFactory().getValidator();
}
/**
* 校验对象是否符合约束条件
*
* @param object 待校验的对象
* @param groups 校验组(可选),用于指定特定场景下的校验规则
* @throws EIException 如果校验失败,则抛出自定义异常 EIException
*/
public static void validateEntity(Object object, Class<?>... groups)
throws EIException {
// 获取校验结果集
Set<ConstraintViolation<Object>> violations = VALIDATOR.validate(object, groups);
// 如果校验结果不为空,表示存在错误
if (!violations.isEmpty()) {
// 获取第一个校验错误信息
ConstraintViolation<Object> violation = violations.iterator().next();
// 抛出自定义异常并附带错误信息
throw new EIException(violation.getMessage());
}
}
}