public final class HibernateValidators {

private static final Validator VALIDATOR;

private HibernateValidators() {

}

static {

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

VALIDATOR = factory.getValidator();

}

public static <T> Set<ConstraintViolation<T>> validate(T object, Class<?>... groups) {

return VALIDATOR.validate(object, groups);

}

/**

* @throws IllegalArgumentException 当校验有错误的时候抛出异常

*/

public static <T> void throwsIfInvalid(T object, Class<?>... groups) {

final Set<ConstraintViolation<T>> constraintViolations = validate(object, groups);

if (!constraintViolations.isEmpty()) {

final ImmutableMap.Builder<String, String> errorBuilder = ImmutableMap.builder();

for (ConstraintViolation<T> violation : constraintViolations) {

errorBuilder.put(violation.getPropertyPath().toString(), violation.getMessage());

}

throw new IllegalArgumentException(errorBuilder.build().toString());

}

}

}

HibernateValidators的更多相关文章

  1. 【转载】springMVC表单校验+全注解

    在这篇文章中,我们将学习如何使用Spring表单标签, 表单验证使用 JSR303 的验证注解,hibernate-validators,提供了使用MessageSource和访问静态资源(如CSS, ...

  2. spring mvc:练习:表单验证(javaConfig配置和注解)

    使用Spring表单标签, 表单验证使用 JSR303 的验证注解,hibernate-validators,提供了使用MessageSource和访问静态资源(如CSS,JavaScript,图片) ...

  3. Spring4 MVC表单验证

    在这篇文章中,我们将学习如何使用Spring表单标签, 表单验证使用 JSR303 的验证注解,hibernate-validators,提供了使用MessageSource和访问静态资源(如CSS, ...

随机推荐

  1. LinkedList阅读

    package java.util; import java.util.function.Consumer; public class LinkedList<E> extends Abst ...

  2. jenkins添加类ubuntu/centos节点报错

    前言:在jenkins添加ubuntu节点,发现启动代理报错 以下是报错: [SSH] Checking java version of /usr/java/latest/bin/java Could ...

  3. DOS批处理高级教程(还不错)(转)

    前言 目录 第二节 常用特殊符号     1.@  命令行回显屏蔽符     2.%  批处理变量引导符     3.>   输出重定向符     4.>>  输出重定向符     ...

  4. 在Pycharm中自动添加时间日期作者等信息

    1.按照下面路径以此打开File→→Settings→→Editor→→File and code Templates 右侧找到Python Script,如下图 2.设置相关代码如下 ##!/usr ...

  5. Nhibernate 使用 (一)

    一:介绍 NHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库.Nhibernate 来源于非常优秀的基于Java的Hibernate 关系型持久化工具.NHibernate ...

  6. NumPy的思考……

    问题: 为什么第一次输出矩阵形式的数据,第二次输出list形式的数据? 详见代码: a = np.array([[1, 2], [3, 4]]) print(a) print('ndim :', a. ...

  7. (转)urllib库python2和python3具体区别

    转载链接:https://blog.csdn.net/whatday/article/details/54710403 Python 2 name Python 3 name urllib.urlre ...

  8. 利用NSE脚本检测域传送和证书透明度滥用

    nslookup -type=NS <domain> <server> nmap -p 53 --script dns-zone-transfer --script-args ...

  9. git命令详解( 六 )

    此为git命令的第六篇 远程跟踪分支 不知道大家有没有发现在前面几篇中Git 好像知道 master 与 o/master 是相关的.当然这些分支的名字是相似的,可能会让你觉得是依此将远程分支 mas ...

  10. 【mybatis】-- springboot整合mybatis

    1.添加依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>m ...