hibernate自定义校验器使用(字段在in范围之内)
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范围之内)相关推荐
- spring-java使用Validation参数验证-自定义校验器
在开发JAVA服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而hibernate-validator提供了一些常用的参数校验注解,我们可以拿来使用. spring-boot-web,内嵌了 ...
- python参数检验框架_python-wtforms框架如何自定义校验器的原理和方法总结
细节请看注释,核心就是__call__函数的用法(def __call__(self,form, field)参数由继承的Form自动提供) from wtforms import Form, Str ...
- cena评测系统:自定义校验器(浮点误差)
作为一个搞oi的,cena的用处还是很大的,以下是一个关于自定义校验器的模板,使用时需要放在data文件夹下,要有exe文件. 代码方面感谢wyl8899 ORZ. #include<cst ...
- cena评测系统:自定义校验器(自定义评测插件编写)
Cena评测系统,最受欢迎的信息学竞赛离线评测系统. 它是开放源程序的信息学竞赛评测系统,能满足大多数程序设计竞赛的测评需求. 特色功能: 通过局域网自动收取选手程序. 高效率的数据文件配置工具. 自 ...
- Bean Validation完结篇:你必须关注的边边角角(约束级联、自定义约束、自定义校验器、国际化失败消息...)【享学Spring】
每篇一句 没有任何技术方案会是一种银弹,任何东西都是有利弊的 前言 一般来说,对于web项目我们都有必要对请求参数进行校验,有的前端使用JavaScript校验,但是为了安全起见后端的校验都是必须的. ...
- springboot中hibernate validator校验模式,分组校验,自定义校验
检验模式 上面例子中一次性返回了所有验证不通过的集合,通常按顺序验证到第一个字段不符合验证要求时,就可以直接拒绝请求了.Hibernate Validator有以下两种验证模式: 普通模式(默认是这个 ...
- 全网唯一正确身份证和社统一社会信用代码自定义表单校验器(身份证校验和社统一社会信用代码校验)
话不多说,直入正题: 1.工具类: import * as moment from 'moment'; import {isUndefined} from 'util'; import {Abstra ...
- ElasticSearch03_Mapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器
文章目录 ①. Mapping字段映射概述 ②. 常用类型如下 - text.keyword ③. 映射中对时间类型详解 ④. ES的keyword的属性ignore_above ⑤. 映射的查看.创 ...
- 商城项目18_esMapping字段映射、常用类型、数据迁移、ik分词器、自定义分词器
文章目录 ①. Mapping字段映射概述 ②. 常用类型如下 - text.keyword ③. 映射中对时间类型详解 ④. ES的keyword的属性ignore_above ⑤. 映射的查看.创 ...
最新文章
- SQL与NoSQL区别
- MySQL登陆时加-U选项
- 用分类行为解释为什么破碎的鸡蛋不能还原为一个完整的鸡蛋
- poj3671Dining Cows(DP)
- java 字节取位_java位 、字节 、字符的梳理
- ubutun 因为端口冲突引起安装nginx报错的解决方法
- 【渝粤题库】陕西师范大学201371 国际法学作业
- 04_zookeeper客户端使用及常用命令
- AVL树原理理解:旋转与平衡
- STL源代码剖析——STL算法stl_algo.h
- 献给攻击者,请放弃攻击吧,这样只会浪费自己的青春+金钱
- get/post在线接口
- 工业机器人实训系统(鼠标装配)
- pythonic希腊典故_希腊神话习语(整理)
- 微信官方:“微信号能修改了!”你有多想修改微信号?
- 德友圈服务器维护多久,原神蒙德城走一圈要多久
- CentOS挂载GPT分区(转载)
- access调整字段顺序_Microsoft Access中的顺序行
- Istio 解决的问题及注入
- Negative Prompt in Stable Diffusion