hibernate-validator校验工具类
时间: 2023-07-03 15:15:35 浏览: 77
Hibernate Validator 是一个基于 JSR 380 规范实现的校验框架,它提供了一系列的注解和 API,方便我们对 Java 对象进行校验。下面给出一个 Hibernate Validator 校验工具类的示例:
```java
public class ValidationUtils {
private static Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
/**
* 校验对象
* @param object 待校验对象
* @param groups 待校验的组
* @throws ValidationException 校验不通过,则报ValidationException异常
*/
public static void validateEntity(Object object, Class<?>... groups)
throws ValidationException {
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);
if (!constraintViolations.isEmpty()) {
StringBuilder msg = new StringBuilder();
for (ConstraintViolation<Object> constraintViolation : constraintViolations) {
msg.append(constraintViolation.getMessage()).append(";");
}
throw new ValidationException(msg.toString());
}
}
}
```
上述代码定义了一个名为 ValidationUtils 的工具类,其中包含了一个名为 validateEntity 的静态方法。该方法接收两个参数,其中 object 表示待校验的对象,groups 表示校验分组。方法内部使用 Hibernate Validator 的 API 进行校验,并将校验结果保存在 constraintViolations 集合中。如果集合不为空,则表示校验不通过,将所有错误消息拼接起来,并抛出 ValidationException 异常。如果集合为空,则表示校验通过,方法直接返回。
可以看出,使用 Hibernate Validator 编写校验工具类非常简单,只需要创建一个 Validator 对象并调用其 validate 方法即可。对于校验不通过的情况,可以将所有错误消息拼接起来,或者只取第一个错误消息作为异常消息。