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> violations = VALIDATOR.validate(object, groups); // 如果校验结果不为空,表示存在错误 if (!violations.isEmpty()) { // 获取第一个校验错误信息 ConstraintViolation violation = violations.iterator().next(); // 抛出自定义异常并附带错误信息 throw new EIException(violation.getMessage()); } } }