Hibernate Validator注解详解

hibernate-validator自定义注解 hibernate-validator是属于hibernate的验证器模块,可以使用注解在POJO的字段上进行验证标注 如果需要自定义验证需要以下两步: 1.定义验证器 /** * 手机号码验证器 */ public class PhoneValidator implements ConstraintValidator<Phone,String> { @Overr... 阅读详情

hibernate Validator 是 Bean Validation 的参考实现 。Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。

在日常开发中,Hibernate Validator经常用来验证bean的字段,基于注解,方便快捷高效。

1. Bean Validation 中内置的 constraint

           注解                                      作用

@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)被注释的元素必须符合指定的正则表达式


2. Hibernate Validator 附加的 constraint

注解作用
@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

举个使用的例子:

  1. public class User {  
  2.       
  3.     @NotBlank  
  4.     private String name;  
  5.       
  6.     //年龄要大于18岁  
  7.     @Min(18)  
  8.     private int age;  
  9.   
  10.     @Email  
  11.     private String email;  
  12.       
  13.     //嵌套验证  
  14.     @Valid  
  15.     private Product products;  
  16.       
  17.     ... //省略getter,setter  
  18. }  
  19.   
  20. public class Product {  
  21.       
  22.     @NotBlank  
  23.     private String name;  
  24.       
  25.     //价格在10元-50元之间  
  26.     @Range(min=10,max=50)  
  27.     private int price;  
  28.       
  29.     ... //省略getter,setter  
  30. }  
public class User {
	
	@NotBlank
	private String name;
	
	//年龄要大于18岁
	@Min(18)
	private int age;

	@Email
	private String email;
	
	//嵌套验证
	@Valid
	private Product products;
	
	... //省略getter,setter
}

public class Product {
	
	@NotBlank
	private String name;
	
	//价格在10元-50元之间
	@Range(min=10,max=50)
	private int price;
	
	... //省略getter,setter
}

转载地址:http://blog.youkuaiyun.com/u011851478/article/details/51842157

数字加网(一)— —概念及分色合成 由于大多数图像复制设备是二值设备,因此在图像复制过程中,必须先把连续调的灰度图像或彩色图像处理成二值的半色调图像,用单位面积的网点覆盖率来表现图像的颜色深浅变化。这个过程被称之为加网(Screening) 数字加网就是根据人眼视觉的空间混色特性,用人眼无法分辨的细小黑白点的单位覆盖面积来模拟灰度图像或彩色图像的层次变化,使得到 阅读详情

相关推荐

abaqus 6.13安装(ubuntu 16.04LTS)

1。从iso将文件拷贝出来 2。chmod 777 -R ./* 给文件权限 3。sudo /home/xx/A/setup 4。安装licenseserver 5。拷贝lic,log文件 6。打开license sudo ./lmgrd -c path 7. 27011@xx or 27011@localhost ...

a1099313374的博客 1950

Hibernate Validator学习笔记

Hibernate Validator 是 Bean Validation 的参考实现 。Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。 在日常开发中,Hibernate Validator经常用来验证bean的字段,基于注解,方便快捷高效。 1. Bean Validation

u011851478的博客 2万+

别再死记硬背了!用LabVIEW串口通信的3个真实项目案例,手把手教你从调试到部署

本文通过3个真实项目案例,详细讲解LabVIEW串口通信从调试到部署的全过程。涵盖Arduino温湿度监控、西门子PLC Modbus通信以及高可靠性通信框架设计,提供实用技巧和常见问题解决方案,帮助工程师快速掌握LabVIEW串口通信的实战应用。

weixin_30485379的博客 522

Hibernate validator注解及Spring Boot自定义Hibernate Validator注解校验(超级详细)

自定义Hibernate Validator校验注解,首先它是注解,所以我们先来看看Spring Boot如何自定义注解。自定义注解,需要用到元注解,元注解就是注解注解的注解。Target:描述了注解的对象范围,取值在java.lang.annotation.ElementType定义,常用的包括:METHOD:用于描述方法PACKAGE:用于描述包PARAMETER:用于描述方法变量TYPE:用于描述类、接口或enum类型FIELD:用来描述字段Retention:表示注解保留时间长短。

qing2019的博客 5758

高德地图可视化入门:零基础用Python+高德API打造你的第一个热力图

本文详细介绍了如何使用Python和高德地图API从零构建商业级热力图。通过环境配置、地理编码、数据清洗到最终可视化展示的全流程指南,帮助开发者快速掌握地图可视化技术,特别适合展示商圈人流、疫情热点等地理分布数据。

weixin_29053067的博客 303

SD--根据订单创建出库单(相关的函数列表的介绍系列篇(2))

创建订单样例代码参见:http://blog.youkuaiyun.com/CompassButton/archive/2007/05/09/1601712.aspx 可以根据一个订单或者部分订单项来创建出库单,代码如下:* Populating the item data lx_sales_item-ref_doc = l_vbeln. lx_sales_item-ref_item = c_000010

SAP BLOG--Jack Wu 6226

Java使用Hibernate-Validator验证API接口参数

Target({/*** 是否必填 默认是必填的* @return/*** 验证失败的消息* @return*/ String message() default "枚举的验证失败";/*** 分组的内容* @return*/ Class

书香水墨 614

如何判断一个程序员的技术比你强?

技术大佬与普通程序员之间存在明显的认知差异:前者善于将复杂问题抽象为经典计算机科学问题,用声明式代码替代过程式逻辑;对异常和边界条件极度敏感,具备系统化的排查方法论;代码追求高可读性而非炫技,且执着于底层原理研究。这种技术压制体现在解决问题的确定性上——通过扎实的理论功底和工程直觉,快速定位问题本质,而非依赖试错或搜索。真正的技术实力源于对底层逻辑的深刻理解和对系统稳定性的敬畏。

wldtzzming的专栏 1088

SpringBoot整合hibernate-validator进行参数校验

Hibernate validator相关注解 注解 说明 @AssertTrue 用于 boolean 字段,该字段只能为 true @AssertFalse 用于 boolean 字段,该字段只能为 false @DecimalMax 用于 Number 字段,只能小于或等于该值 @DecimalMin 用于 Number 字段,只能大于或等于该值 @Digits(integer=2,fractio...

哈 1213

MySQL安装配置教程(超级详细)

一、 下载MySQL Mysql官网下载地址:MySQL :: Download MySQL Installer (Archived Versions) 1. 选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传…重新上传取消 二、 安装MySQL 1. 选择设置类型双击运行mysql-installer-community-5.7.31.0.msi 这里选择是自定义安装,所以直接选择“Custom”,点击“Next” “Developer Default”是

m0_67322837的博客 5万+

对于基本的捕鱼游戏设计思路(五)——鱼

今天讲捕鱼游戏里鱼的部分,也是比较关键的一部分。 一步一步来,先分析游戏,首先鱼是从屏幕外生成,然后它有个移动的动作,而且分为不同的类型。 然后就可以进入代码部分,首先设置一个计时器,控制时间生成鱼,而鱼分种类,所以就用到随机函数,随机输出一个值,传入switch语句,从而生成不同的鱼。 void GameScene::xiaoyuupdate(float dt){ Size visibl

Cineze的博客 1万+

Hibernate Validator注解大全

hibernateValidator 是 Bean Validation 的参考实现 。Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。 在日常开发中,Hibernate Validator经常用来验证bean的字段,基于注解,方便快捷高效。 1.Bean Validation 中内置的 constraint 注解作用 @Valid 被注释的元素是一个对象,需要检查此对象的所有字段值..

风的专栏 2257

Python爬虫实战:用Playwright+Transformer做财经新闻事件驱动分析,我靠它抓住了算力政策的涨停机会

对我来说,这套系统最大的价值不是抓住了几次涨停,而是把“看新闻→分析→决策”的全流程自动化、量化了——不用再被股吧的情绪带偏,不用再熬夜刷新闻,而是用数据和模型做理性判断。更重要的是,搭建这套系统的过程,我吃透了Playwright动态爬虫、Transformer文本分析、量化数据对接这些核心技能,这些技能不管是做量化、做数据分析师,还是做其他领域的爬虫,都能用得上。现在打开PyCharm,跟着代码跑一遍,你也能从海量财经新闻里,挖出属于自己的事件驱动信号——与其靠感觉炒股,不如靠数据说话。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1391

hibernate-validator 所有校验注解

hibernate-validator 所有校验注解 注解 含义 @NotNull 验证字段不为 null @NotEmpty 验证字段不为空,常用于校验集合元素不为空 @NotBlank 验证字段不为空,常用于验证字符串不是空串 @Max 验证字段的最大值 @Min 验证字段的最小值 @Digits (integer=整数位数, fraction=小数位数)验证字段整数位数和小数位数上限 @DecimalMax 与 @Max 类似,不同的是它限定值可以带小数,一般用

hello world 8561

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hibernate-validator注解文档

hibernate-validator注解文档 @AssertTrue //用于boolean字段,该字段只能为true @AssertFalse//该字段的值只能为false @CreditCardNumber//对信用卡号进行一个大致的验证 @DecimalMax//只能小于或等于该值 @DecimalMin//只能大于或等于该值 @Digits(integer=2,fra...

1853 711

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hibernate validator 常用的注解汇总

1. 声明: 汇总表主要是小编的使用后总结,而且这些注解主要用于字段的校验。官方文档 2. 常用的注解汇总表: Hibernate validator常用注解说明汇总 注解 适用的字段数据类型 使用说明 @AssertFalse Boolean, boolean. 该注解验证值为false的元素,或者说要求验证元素的值为false. @Asser...

calm_encode的博客 940

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hibernate validator自定义注解实战之《枚举值校验》

前言在spring项目中,校验参数功能使用hibernate validator是一个不错的选择,我们的项目中也是使用它来进行校验的,省去了很多难看的校验逻辑,使代码的可读性也大大增加,本章将带你使用hibernate validator自定义注解功能实现一个 枚举值校验的逻辑。需求我们先明确下我们的需求,在程序开发过程中,我们经常会有一个对象的属性值只能出现在一组常量中的校验需求,例如:用户性别字

一切都是最好的安排 1万+

自定义hibernate validator注解对字段进行校验

1. hibernate validator注解在web项目中经常用到,是一个很好用的字段校验器,可以对前端传入的参数进行判断,如是否为空,是否满足正则规定的格式等等。 2. 假设有一个业务场景,需要判断前端传入的用户是否存在,而项目中有很多地方会用到此判断,此时可以构造一个自定义校验器进行字段校验,在需要的时候只需要加上此注解即可。 3. controller接口 package ne...

唯学习方能解忧 2256

Hibernate Validator验证注解说明

前言 hibernate Validator是JSR-303的一个实现。在FormBean里添加Hibernate Validator的注解,与定义一个校验类的做法相比。注解更加简洁、灵活。  需要的jar hibernate-validator-4.1.0.Final.jar  validation-api-1.0.0.GA.jar 注解说明  Bea

Fighter168的专栏 5534

Hibernate Validator 注解详解

fwk19840301的博客 413

@Valid注解基于hibernate-validator

hibernate-validator 是基于javax.validation的数据合法性检测包,用于检测常用类的极限值、空值、边界值等的数据合法性校验 引入 <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.1.5.Final</version>

qq_38593205的博客 1226

notnull注解_Hibernate Validator 第19篇:自定义约束-约束注解

Bean Validation API定义了一整套标准的约束注解,例如@NotNull,@Size等等。这种情况下,这些内建的约束是不够的,你可以很容易地创建自定义的约束,根据你自己的校验需要。首先为了建立一个自定义约束,下面的三个步骤是必须的:创建一个约束注解;实现一个校验器;定一个默认的error message。一、约束注解展示写一个约束注解,这个注解的作用是保证被给定的字符串完全是大写,或...

weixin_39980929的博客 367

SpringMVC 和 Hibernate Validator的结合(初级)- 基于注解后端数据校验

注意的问题: 在Tomcat中使用需要正确的将J2EE

yszzu的专栏 3530

Hibernate validator使用以及自定义校验器注解

Hibernate Validator常用注解 1.创建自定义校验器 import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import jav...

dh554112075的博客 2万+

hibernate-validator扩展自定义注解校验请求参数及请求体

SpringBoot项目中一般使用hibernate-validator来对请求参数进行校验,但hibernate-validator提供的注解有限,有时候需要根据具体业务扩展自定义注解对参数进行校验。 前言: 在实际运用中,hibernate-validator的注解分为校验单个的参数及整个实体类,两个校验的情况在处理上有一些差别,下面分开讲解。 校验单个参数 自定义注解 模拟对Id进行校验 @Documented @Constraint(validatedBy = IdCheck.IdValidat.

Simon's Blog 1017
上一篇: @NotNull, @NotEmpty和@NotBlank之间的区别是什么?
下一篇: Hibernate注解详解
elementf
博客等级 码龄14年 30粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值