pull/2/head
zxy 5 months ago
parent 719b9de763
commit 39b69a125b

@ -1,7 +1,5 @@
package com.utils;
import java.util.Set;
import javax.validation.ConstraintViolation;
@ -12,28 +10,41 @@ import com.entity.EIException;
/**
* hibernate-validator
* Hibernate Validator
* EIException
*/
public class ValidatorUtils {
// 静态的Validator对象用于执行校验操作。
// 由于Validator是线程安全的使用静态变量可以在整个应用程序中共享同一个实例提高性能。
private static Validator validator;
// 静态代码块在类加载时执行确保Validator对象只被初始化一次。
// 通过Validation类构建默认的验证工厂然后从工厂中获取Validator实例。
static {
validator = Validation.buildDefaultValidatorFactory().getValidator();
}
/**
*
* @param object
* @param groups
* @throws EIException EIException
*
*
* @param object 使Hibernate Validator
* @param groups
* @throws EIException EIException
*
*/
public static void validateEntity(Object object, Class<?>... groups)
throws EIException {
// 调用Validator的validate方法对对象进行校验根据指定的组应用相应的约束条件。
// 该方法会返回一个包含所有违反约束信息的Set集合。
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);
// 检查约束违反集合是否为空,若不为空则表示存在校验不通过的情况。
if (!constraintViolations.isEmpty()) {
ConstraintViolation<Object> constraint = (ConstraintViolation<Object>)constraintViolations.iterator().next();
// 获取集合中的第一个违反约束的信息。
// 这里仅取第一个违反约束的信息作为异常信息抛出,可能会忽略其他违反约束的情况。
ConstraintViolation<Object> constraint = (ConstraintViolation<Object>)constraintViolations.iterator().next();
// 抛出EIException异常将违反约束的详细信息作为异常消息。
throw new EIException(constraint.getMessage());
}
}
}

Loading…
Cancel
Save