Hibernate Validation注解列表

下面是主要的验证注解及说明:


注解


适用的数据类型


说明


@AssertFalse


Boolean, boolean


验证注解的元素值是false


@AssertTrue


Boolean, boolean


验证注解的元素值是true


@DecimalMax(value=x)


BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.


验证注解的元素值小于等于@ DecimalMax指定的value值


@DecimalMin(value=x)


BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.


验证注解的元素值小于等于@ DecimalMin指定的value值


@Digits(integer=整数位数, fraction=小数位数)


BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.


验证注解的元素值的整数位数和小数位数上限


@Future


java.util.Date, java.util.Calendar; Additionally supported by HV, if theJoda Time date/time API is on the class path: any implementations ofReadablePartial andReadableInstant.


验证注解的元素值(日期类型)比当前时间晚


@Max(value=x)


BigDecimal, BigInteger, byte, short,int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type ofCharSequence (the numeric value represented by the character sequence is evaluated), any sub-type of Number.


验证注解的元素值小于等于@Max指定的value值


@Min(value=x)


BigDecimal, BigInteger, byte, short,int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of CharSequence (the numeric value represented by the char sequence is evaluated), any sub-type of Number.


验证注解的元素值大于等于@Min指定的value值


@NotNull


Any type


验证注解的元素值不是null


@Null


Any type


验证注解的元素值是null


@Past


java.util.Date, java.util.Calendar; Additionally supported by HV, if theJoda Time date/time API is on the class path: any implementations ofReadablePartial andReadableInstant.


验证注解的元素值(日期类型)比当前时间早


@Pattern(regex=正则表达式, flag=)


String. Additionally supported by HV: any sub-type of CharSequence.


验证注解的元素值与指定的正则表达式匹配


@Size(min=最小值, max=最大值)


String, Collection, Map and arrays. Additionally supported by HV: any sub-type of CharSequence.


验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小


@Valid


Any non-primitive type(引用类型)


验证关联的对象,如账户对象里有一个订单对象,指定验证订单对象


@NotEmpty


CharSequence,Collection, Map and Arrays


验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)


@Range(min=最小值, max=最大值)


CharSequence, Collection, Map and Arrays,BigDecimal, BigInteger, CharSequence, byte, short, int, long and the respective wrappers of the primitive types


验证注解的元素值在最小值和最大值之间


@NotBlank


CharSequence


验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格


@Length(min=下限, max=上限)


CharSequence


验证注解的元素值长度在min和max区间内


@Email


CharSequence


验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

时间: 2024-10-18 09:22:37

Hibernate Validation注解列表的相关文章

Spring Boot应用使用Validation校验入参,现有注解不满足,我是怎么暴力扩展validation注解的

前言 昨天,我开发的代码,又收获了一个bug,说是界面上列表查询时,正常情况下,可以根据某个关键字keyword模糊查询,后台会去数据库 %keyword%查询(非互联网项目,没有使用es,只能这样了):但是,当输入%字符时,可以模糊匹配出所有的记录,就好像,好像这个条件没进行过滤一样. 原因很简单,当输入%时,最终出来的sql,就是%%%这样的. 我们用的mybatis plus,写法如下,看来这样是有问题的(bug警告): QueryWrapper<QueryUserListReqVO>

Hibernate Validation使用示例及讲解

Hibernate Validation使用示例及讲解 时间 2015-01-10 11:02:14 ITeye-博客 原文 http://wdmcygah.iteye.com/blog/2174680 主题 Java 在项目开发过程中,后台在很多场景都需要进行校验操作,比如:前台表单提交到后台,系统接口调用,数据传输等等.而且很多项目都采用MVC分层式设计,每层还有需要进行相应地校验,这样在项目较大,多人协作开发的时候,会造成大量重复校验代码,且出错率高. 针对这个问题, JCP 出台一个 J

JSR303/JSR-349,hibernate validation,spring validation 之间的关系

JSR303是一项标准,JSR-349是其的升级版本,添加了一些新特性,他们规定一些校验规范即校验注解,如@Null,@NotNull,@Pattern,他们位于javax.validation.constraints包下,只提供规范不提供实现. hibernate validation是对这个规范的实践(不要将hibernate和数据库orm框架联系在一起),他提供了相应的实现,并增加了一些其他校验注解,如@Email,@Length,@Range等等,他们位于org.hibernate.va

Java、Hibernate(JPA)注解大全

1.@Entity(name=”EntityName”) 必须,name为可选,对应数据库中一的个表 2.@Table(name=””,catalog=””,schema=””) 可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息 name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名 catalog:可选,表示Catalog名称,默认为Catalog(“”). schema:可选,表示Schema名称,默认为

Hibernate @Temporal 注解处理Java与Mysql时间日期类型的映射关系

2017-4-2 在 Java 中使用 java.util.Date 和 java.util.Calendar 表示时间.日期类型.在 Mysql 中使用 YEAR.DATE.TIME.TIMESTAMP.DATETIME 五种数据类型表示时间日期,由此引出了 Java 日期类型跟数据库的日期类型怎么映射的问题.本文总结了使用 Hibernate @Temporal 注解的解决方案. 使用 @Temporal 注解修饰 Java 实体类的数据类型 指定 @Temporal value 属性,其中

Hibernate Annotations 注解

Hibernate Annotations 注解 对于org.hibernate.annotations与org.hibernate.persistence,它的注释比如Columns,可是不知道怎么使用,但是hibernate中也封装了javax.persistence,而且数据库映射注释主要还是使用javax.persistence,即如下注释元素Column,使用规则如下.  分类: Java(66)  [java] view plain copy @Entity 声明当前是一个持久化类

hibernate annotation注解方式来处理映射关系

在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用annotation的方式可以更简介,所以这里就简单记录下通过annotation来配置各种映射关系,在hibernate4以后已经将annotation的jar包集成进来了,如果使用hibernate3的版本就需要引入annotation的jar包. 一.单对象操作 @Entity

Hibernate中用注解配置一对多双向关联和多对一单向关联

Hibernate中用注解配置一对多双向关联和多对一单向关联 Hibernate提供了Hibernate Annotations扩展包,使用注解完成映射.在Hibernate3.3之前,需单独下载注解开发包 配置持久化类 配置关联关系 下面我们先从多对一单向关联关系讲起,多对一单向关联就是在多的一方植入一的一方的主键作为外键,下面我们先进行初始配置, 在配置的过程中我们会遇到一个问题  就是无论用load还是get都不会出现延迟加载,那么我们应该如何设置为要延迟加载,这样做的好处是可以在用的时候

批量产生ssh2项目中hibernate带注解的pojo类的快捷方法

近几个月一直在忙于项目组的ios应用项目的开发,没有太多时间去研究web应用方面的问题了.刚好,昨天有网友问到如何批量产生hibernate带注解的pojo类的快捷方法,所谓批量就是指将当前数据库中所有数据表全部一次性生成带注解的pojo类,假设当前数据库friend有50个数据表,如果一个个的新建产生pojo类的话,那就是说要手工输入新建50个pojo类后,还有输入每个类带注解的代码,并且还要写好有关联的类之间的映射关系,虽然,从学习的角度来说,手工写是个不错的主意,但是从开发效率和开发成本来