Hibernate Validation

hibernate validation 控制hibernate validation校验顺序 public class UserVo { /** * 单体查询校验分组 */ @GroupSequence({Default.class, Extended.class}) public interface QueryValidatorGroup { public interface Default { } public interface Ext 阅读详情

@Valid被注释的元素是一个对象,需要检查此对象的所有字段值
@Null被注释的元素必须为 null
@NotNull被注释的元素必须不为 null
@AssertTrue被注释的元素必须为 true
@AssertFalse被注释的元素必须为 false
@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min)被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past被注释的元素必须是一个过去的日期
@Future被注释的元素必须是一个将来的日期
@Pattern(value)被注释的元素必须符合指定的正则表达式


注解作用
@Email被注释的元素必须是电子邮箱地址
@Length(min=, max=)被注释的字符串的大小必须在指定的范围内
@NotEmpty被注释的字符串的必须非空
@Range(min=, max=)被注释的元素必须在合适的范围内
@NotBlank被注释的字符串的必须非空
@URL(protocol=,
host=,    port=, 
regexp=, flags=)
被注释的字符串必须是一个有效的url
@CreditCardNumber
被注释的字符串必须通过Luhn校验算法,
银行卡,信用卡等号码一般都用Luhn
计算合法性
@ScriptAssert
(lang=, script=, alias=)
要有Java Scripting API 即JSR 223 
("Scripting for the JavaTM Platform")的实现
@SafeHtml
(whitelistType=, 
additionalTags=)
classpath中要有jsoup包

hibernate补充的注解中,最后3个不常用,可忽略。

主要区分下@NotNull  @NotEmpty  @NotBlank 3个注解的区别:

@NotNull           任何对象的value不能为null

@NotEmpty       集合对象的元素不为0,即集合不为空,也可以用于字符串不为null

@NotBlank        只能用于字符串不为null,并且字符串trim()以后length要大于0






private static final long serialVersionUID = 52855748050437253L;
  /*主商户号*/
@NotEmpty(message="主商户号不能为空")
  @Pattern(regexp="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$",
  message="密码格式不正确")
private String merno;
/*子商户号*/
@NotEmpty(message="子商户号不能为空") 










@RequestMapping("/test")
@ResponseBody
public  String addTest(@Valid MerChannelSet channelSet,BindingResult bindingResult){
System.out.println(channelSet.getMerno());
if(bindingResult.hasErrors()){
  FieldError fieldError= bindingResult.getFieldError();  
        System.out.println(fieldError.getDefaultMessage()); 
        List<FieldError> FieldErrors = bindingResult.getFieldErrors();
        for(FieldError error : FieldErrors){
        System.out.println(error.getDefaultMessage()); 
        }
return "0";
}else{
return "1";
}
  }



@Test
public void test(){
/**
      * Bean Validation 中内置的 constraint       
      * @Null   被注释的元素必须为 null       
      * @NotNull    被注释的元素必须不为 null       
      * @AssertTrue     被注释的元素必须为 true       
      * @AssertFalse    被注释的元素必须为 false       
      * @Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值       
      * @Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值       
      * @DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值       
      * @DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值       
      * @Size(max=, min=)   被注释的元素的大小必须在指定的范围内       
      * @Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内       
      * @Past   被注释的元素必须是一个过去的日期       
      * @Future     被注释的元素必须是一个将来的日期       
      * @Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式       
      * Hibernate Validator 附加的 constraint       
      * @NotBlank(message =)   验证字符串非null,且长度必须大于0       
      * @Email  被注释的元素必须是电子邮箱地址       
          * @Length(min=,max=)  被注释的字符串的大小必须在指定的范围内       
      * @NotEmpty   被注释的字符串的必须非空       
      * @Range(min=,max=,message=)  被注释的元素必须在合适的范围内 
      * 
      * 正则示例:
  * @Pattern(regexp="/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,10}$/", message="密码必须是6~10位数字和字母的组合")
      * @Pattern(regexp="^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$", message="手机号格式不正确")
      * 
     */
  PreForumForum preForumForum = new PreForumForum();
preForumForum.setName(" ");
preForumForum.setDisplayorder(0);
System.out.println(preForumForum.getName().length());
    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator  validator = factory.getValidator();
Set<ConstraintViolation<PreForumForum>> constraintViolations = validator.validate( preForumForum );
if(constraintViolations.iterator().hasNext() && constraintViolations.iterator().next().getMessage() != null){
System.out.println("===================");
System.out.println(constraintViolations.iterator().next().getMessage());
System.out.println(constraintViolations.iterator().next().getPropertyPath());
System.out.println("===================\n");
}
}






JAVA中通过Hibernate-Validation进行参数验证 主要介绍了JAVA中通过Hibernate-Validation进行参数验证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 立即下载

相关推荐

狗都能看懂的Proximal Policy Optimization(PPO)PPO算法详解

李宏毅老师的PPO算法讲解笔记

个人学习笔记 2万+

Hibernate-Validator(数据校验框架)

Hibernate-Validator(数据校验框架)

weixin_45080272的博客 1万+

NBIS单细胞教程:差异基因(五)

此文章是通过学习瑞典国家生物信息学基础设施(NBIS) 所开放的单细胞分析教程加上网上所查找的资料,自身的理解所形成的,可能会有不足之处。该部分是对不同集群之间的差异基因进行分析。参考来源:https://github.com/NBISweden/workshop-scRNAseq/blob/master/labs/seurat/seurat_05_dge.Rmd感兴趣的话可以阅读原文。

songyi10的博客 1万+

Hibernate Validator 使用详解

定义自定义约束,有三个步骤创建约束注解实现一个验证器定义默认的错误信息实战:自定义手机号码校验器/*** 错误提示信息,可以写死,也可以填写国际化的key*/String message() default "手机号码不正确";Class

zhouzhiwengang的专栏 8652

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8422

2025年下半年网络工程师案例分析真题及答案解析

2025年下半年网络工程师案例分析真题及答案解析

鹿鸣天涯 1086

Hibernate Validation使用说明

一、前言 Hibernate Validation是一个后端验证框架,目前比较流行的验证做法:前端jquery-form-validate + 后端hibernate-validate,它是JSR 303-Bean Validation规范的实现方案,与Hibernate ORM 没有任何关系。 二、hibernate Validation constraint 注解 2.1、Bean Valid...

HenrySun 7107

【AI大模型】角色设定:给模型定身份的高效使用方法

摘要: AI大模型角色设定(RolePrompting)是提示词工程的核心优化技巧,通过赋予模型特定职业、领域和风格约束,显著提升输出专业度与适配性。文章系统拆解了角色设定的原理、万能公式(领域+身份+技能+风格+场景)、三级分层写法(基础/进阶/专家),并提供10类高频场景的模板。通过无角色与有角色输出的对比实验(Python代码量化验证),证明角色设定可使模型综合得分提升35%以上,尤其优化场景适配度与风格统一性。该技巧作为高阶提示词(如CoT、Few-Shot)的前置模块,能以零成本实现AI输出的专业

unber的博客 41

Hibernate Validator详解

一、简介 项目中,难免需要对参数 进行一些参数正确性的效验,这些小样出现在业务代码中,多次出现if效验数据使得业务代码显得臃肿,所以Hibernate validator框架刚好解决这些问题,可以很优雅的方式实现参数的效验,让业务代码和小样逻辑分开,不在编写重复的效验逻辑。hibernate Validator提供了JSR303规范中所有内置约束的实现,除此之外还有一些附加约束。 Bean V...

Ark方舟 1万+

【华为OD机试】贪吃蛇(python, java, c++, js)

贪吃蛇是一个经典游戏,蛇的身体由若干方格连接而成,身体随蛇头移动。蛇头触碰到食物时,蛇的长度会增加一格。蛇头和身体的任一方格或者游戏版图边界碰撞时,游戏结束。 下面让我们来完成贪吃蛇游戏的模拟。 给定一个NM的数组arr,代表NM个方格组成的版图,贪吃蛇每次移动一个方格。 若arr[i][j] == H,表示该方格为贪吃蛇的起始位置; 若arr[i][j] == F,表示该方格为食物, 若arr[i][j] == E,表示该方格为空格。 贪吃蛇初始长度为1,初始移动方向为向左。

A_D_I_D_A_S的博客 541

【教程4>第3章>第1节】通信系统高阶调制解调概述

高阶调制(High Order Modulation)是一种先进的数字调制技术,旨在通过增加每个符号携带的信息比特数来提高无线通信系统的数据传输速率和频谱效率。这种技术特别适用于具有较高信噪比(Signal-to-Noise Ratio, SNR)的通信环境,例如卫星通信、光纤通信以及一些高质量的无线通信链路。在数字通信中,调制是将数字信号(比特流)转换为适合在物理信道上传输的模拟信号的过程。高阶调制通过使用更多的信号状态或星座点来表示不同的比特组合,从而在一个符号周期内传输更多的信息。

FPGA/MATLAB学习教程/源码/项目合作开发 1702

springboot中使用Hibernate-Validation

这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。后端接口设计时候,需要对前端请求参数进行'先校验后处理业务'情况,如果在业务代码中通过类似if这里逐个校验,会使得代码变得繁琐,开发工作者都是爱偷懒的。作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

欢迎来到我的博客 905

使用podspec创建iOS插件

概述 在WWDC 2014全球开发者大会上,苹果开放了动态库、App Extension等全新的功能,这为iOS插件化开发带来了可能。在iOS开发中,动态库是iOS提供的一种资源打包方式,可以将代码文件、头文件、资源文件和说明文档等集中在一起,并且可以在运行时进行动态加载。 目前,很多应用越做越复杂,应用程序也显得越来越臃肿。试想一下,如果将一些不常用的功能做成一个插件,然后根据用户的需求从网络中...

xiangzhihong8的专栏 991

Hibernate Validation注解

Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint  Java代码   Bean Validation 中内置的 constraint       @Null   被注释的元素

u012422446的博客 772

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

如何通过Hibernate-Validation进行参数验证

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习已经将知识体系整理好(源码,笔记,PPT,学习视频)《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取![外链图片转存中…(img-aIrv2hRn-1712427543381)]《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

erghtt的博客 955

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring Boot Validation 、Jakarta Validation 和 Hibernate Validator 的关系

Jakarta Validation 提供了一个用于验证Java Bean的标准接口和注解。 Hibernate Validator 是这个标准的具体实现,提供了更多的特性和灵活性。 Spring Boot Validation 则是利用Spring Boot的特性,简化了在Spring Boot应用中集成和使用Jakarta Validation和Hibernate Validator的过程。

宋冠巡的博客 2961

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Hibernate-Validation的使用

Hibernate-Validation的使用 首先是要加入下面两个包 hibernate-validator-4.1.0.Final.jar  validation-api-1.0.0.GA.jar   如果在验证不通过的时候进行了添加、更新或删除操作的时候,则会抛出javax.validation.ConstraintViolationException异常

lcathm的专栏 679

ssm整合 hibernate的validation验证框架

在前端验证表单可以最大程度的提升用户体验,缺点很明显:想搞事情的同学,非常轻松就能绕过前端校验。那么对应的后端校验就显得尤为重要了。笔者作为一个很懒的程序员新手,无意之间发现hibernate的validation验证框架,感觉非常好,极大程度的减少代码量,特此记录一下。 1引入jar(hibernate的validation验证框架并不是hibernate框架) <!--数据验证--...

一叶知秋Plus 1024

使用hibernate validation 实现数据校验

hibernate validation hibernate validation 是什么, github hibernate-validator 与 持久层框架 hibernate 没有什么关系,hibernate-validator 是 hibernate 组织下的一个开源项目 hibernate-validator 是 JSR 380(Bean Validation 2.0) 或 J...

Dong滴个Dong的博客 638

javaBean hibernate Validation

文章目录javaBean hibernate Validation 介绍依赖:注解类型入门使用( 验证的普通 JavaBean )要校验的对象校验工具类测试自定义校验器定义校验器接口:校验器接口的实现:要验证的对象测试:hibernate的校验模式1、普通模式(默认)2、快速失败返回模式3、配置SpringBoot 时,将 校验模式对象 添加到容器中 javaBean hibernate Vali...

猎人在吃肉 768

Hibernate Validation各注解

Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint Java代码   Bean Validation 中内置的 constraint       @Null   被注释的元

white__cat的专栏 332

使用Hibernate Validation进行优雅的参数校验

使用Hibernate Validation进行优雅的参数校验 开发中,我们需要在controller,service等层对传来的参数进行校验判断。 比如判断参数是否为null,数字是否符合规定大小,字符串格式是否正确。 如果我们在每个controller里面都进行判断,即繁琐也容易失误。而Hibernate Validator校验框架可以帮我们从繁琐的参数校验中脱离出来,进行更有质量的开发。 H...

xizi1103的博客 599

springmvc服务端校验hibernate validation配置

springmvc服务端校验hibernate validation的配置 0.需要引3个jar包     hibernate-validator-4.3.0.Final.jar     jboss-logging-3.1.0.CR2.jar     validation-api-1.0.0.GA.jar 1.在src目录下创建CustomValidationMessag

羽化飞仙 4192

自定义hibernate validation 注解

最近,在做excel表格导入的时候,需要进行数据校验. 数据校验,可以发生在从excel表中取数据的过程中,也可以发生在,将excel表中的数据转为对象,在用hibernate-validation进行注定属性进行校验. 本项目是maven项目,在pom.xml文件中引入:<dependency> <groupId>org.hibernate</groupId>

bingbing_beautiful的博客 1004
上一篇: Spring 源码学习记录(无用自己看的)
下一篇: 滚动具体的元素节点
phpfzh
博客等级 码龄10年 22粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值