2019独角兽企业重金招聘Python工程师标准>>>

1.自定义注解类DigitsMustIn

@Constraint(validatedBy = DigitsMustInValidator.class) //具体的实现
@Target({java.lang.annotation.ElementType.METHOD,java.lang.annotation.ElementType.FIELD})
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Documented
public @interface DigitsMustIn {String message() default "{}不需在[{}]中"; //提示信息,可以写死,可以填写国际化的keyint[] inArr();//下面这两个属性必须添加Class<?>[] groups() default {};Class<? extends Payload>[] payload() default {};
}

2.实现DigitsMustInValidator校验服务

public class DigitsMustInValidator implements ConstraintValidator<DigitsMustIn, Integer> {Integer[] ints;@Overridepublic void initialize(DigitsMustIn constraintAnnotation) {int[] ints = constraintAnnotation.inArr();this.ints = ArrayUtils.toObject(ints);}@Overridepublic boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {if (ArrayUtils.contains(ints, integer)) {return true;}constraintValidatorContext.disableDefaultConstraintViolation();//禁用默认的message的值//重新添加错误提示语句constraintValidatorContext.buildConstraintViolationWithTemplate("["+integer+"]" + "必须在" + Arrays.toString(ints) + "之内").addConstraintViolation();return false;}
}

3.在需要校验的字段上加自定义注解

@DigitsMustIn(inArr = {7, 8, 18})
private Integer sourceType;

4.验证

private void validate(Object validateObj) throws WMS3CheckedException {for (ConstraintViolation<Object> constraintViolation : Validation.buildDefaultValidatorFactory().getValidator().validate(validateObj)) {throw new WMS3CheckedException(WMS3ExceptionCode.UNKNOW_EXCEPTON.getCode(),constraintViolation.getPropertyPath() + constraintViolation.getMessage());}
}

转载于:https://my.oschina.net/u/2485283/blog/1859311

hibernate自定义校验器使用(字段在in范围之内)相关推荐

  1. spring-java使用Validation参数验证-自定义校验器

    在开发JAVA服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而hibernate-validator提供了一些常用的参数校验注解,我们可以拿来使用. spring-boot-web,内嵌了 ...

  2. python参数检验框架_python-wtforms框架如何自定义校验器的原理和方法总结

    细节请看注释,核心就是__call__函数的用法(def __call__(self,form, field)参数由继承的Form自动提供) from wtforms import Form, Str ...

  3. cena评测系统:自定义校验器(浮点误差)

    作为一个搞oi的,cena的用处还是很大的,以下是一个关于自定义校验器的模板,使用时需要放在data文件夹下,要有exe文件. 代码方面感谢wyl8899   ORZ. #include<cst ...

  4. cena评测系统:自定义校验器(自定义评测插件编写)

    Cena评测系统,最受欢迎的信息学竞赛离线评测系统. 它是开放源程序的信息学竞赛评测系统,能满足大多数程序设计竞赛的测评需求. 特色功能: 通过局域网自动收取选手程序. 高效率的数据文件配置工具. 自 ...

  5. Bean Validation完结篇:你必须关注的边边角角(约束级联、自定义约束、自定义校验器、国际化失败消息...)【享学Spring】

    每篇一句 没有任何技术方案会是一种银弹,任何东西都是有利弊的 前言 一般来说,对于web项目我们都有必要对请求参数进行校验,有的前端使用JavaScript校验,但是为了安全起见后端的校验都是必须的. ...

  6. springboot中hibernate validator校验模式,分组校验,自定义校验

    检验模式 上面例子中一次性返回了所有验证不通过的集合,通常按顺序验证到第一个字段不符合验证要求时,就可以直接拒绝请求了.Hibernate Validator有以下两种验证模式: 普通模式(默认是这个 ...

  7. 全网唯一正确身份证和社统一社会信用代码自定义表单校验器(身份证校验和社统一社会信用代码校验)

    话不多说,直入正题: 1.工具类: import * as moment from 'moment'; import {isUndefined} from 'util'; import {Abstra ...

  8. ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器

    文章目录 ①. Mapping字段映射概述 ②. 常用类型如下 - text.keyword ③. 映射中对时间类型详解 ④. ES的keyword的属性ignore_above ⑤. 映射的查看.创 ...

  9. 商城项目18_esMapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器

    文章目录 ①. Mapping字段映射概述 ②. 常用类型如下 - text.keyword ③. 映射中对时间类型详解 ④. ES的keyword的属性ignore_above ⑤. 映射的查看.创 ...

最新文章

  1. SQL与NoSQL区别
  2. MySQL登陆时加-U选项
  3. 用分类行为解释为什么破碎的鸡蛋不能还原为一个完整的鸡蛋
  4. poj3671Dining Cows(DP)
  5. java 字节取位_java位 、字节 、字符的梳理
  6. ubutun 因为端口冲突引起安装nginx报错的解决方法
  7. 【渝粤题库】陕西师范大学201371 国际法学作业
  8. 04_zookeeper客户端使用及常用命令
  9. AVL树原理理解:旋转与平衡
  10. STL源代码剖析——STL算法stl_algo.h
  11. 献给攻击者,请放弃攻击吧,这样只会浪费自己的青春+金钱
  12. get/post在线接口
  13. 工业机器人实训系统(鼠标装配)
  14. pythonic希腊典故_希腊神话习语(整理)
  15. 微信官方:“微信号能修改了!”你有多想修改微信号?
  16. 德友圈服务器维护多久,原神蒙德城走一圈要多久
  17. CentOS挂载GPT分区(转载)
  18. access调整字段顺序_Microsoft Access中的顺序行
  19. Istio 解决的问题及注入
  20. Negative Prompt in Stable Diffusion

热门文章

  1. android通知图标变白色,android 7.0通知图标出现白色方块
  2. Java线程之多线程与多进程(3)——Java中的多线程
  3. SINOCES 2011
  4. Java EE启示录
  5. 泰国能源部携手本土企业打造智慧城市
  6. Wget CVE-2014-4877:FTP 符号链接任意文件系统访问
  7. 使用IDEA 提交代码到svn
  8. 用状态机STATE MACHINE实现有选择的文件转换
  9. Rafy 框架 - 幽灵插件(假删除)
  10. ie8下修改input的type属性报错