Jpa的基础校验/验证注解

注解说明

注解

说明

@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=)

被注释的元素必须符合指定的正则表达式 eg:@Pattern(regexp="^1[3,4,5,6,7,8,9]\d{9}$", message="手机号码格式不正确")

Hibernate Validator 附加的 constraint

@NotBlank(message =)

验证字符串非null,且长度必须大于0

@Email

被注释的元素必须是电子邮箱地址

@Length(min=,max=)

被注释的字符串的大小必须在指定的范围内

@NotEmpty

被注释的字符串的必须非空

@Range(min=,max=,message=)

被注释的元素必须在合适的范围内

示例一(单个实体类进行校验):

WorkForm表单提交封装实体类——校验的bean

Controller接口映射类——校验方法

说明:

a.在接口参数的@Valid,来自于javax.validation.Valid;主要作用,表示当前的实体类要进行validation,只要当前的实体类,加了@DecimalMin、@NotBlank、@Length等注解以及上表介绍的注解,都会自动校验其属性是否合法

b.@RequestBody 代表接受的是一个Json字符串

c.BindingResult,这里@Valid的参数后必须紧挨着一个BindingResult 参数,否则spring会在校验不通过时直接抛出异常

绑定校验结果的错误信息,具体参考上面代码示例

示例二(嵌套实体类进行校验):

主实体类——校验的bean

明细实体类——校验的bean

接口校验

说明:

@Valid校验MicroForm,但是在MicroForm属性中microAppraisalForms ,也用到了@Valid,因此在校验主MicroForm的同时,还会查找当前实体类的属性中是否有@Valid注解,有的话,就会关联校验属性的实体类,也就是会关联校验List封装的实体MicroAppraisalForm

Last updated

Was this helpful?