Spring Boot使用Hibernate-Validator校验参数时的长度校验方法详解

 更新时间:2023年08月18日 10:14:41   作者:小猪吃米饭  
这篇文章主要给大家介绍了关于Spring Boot使用Hibernate-Validator校验参数时的长度校验方法的相关资料,在Spring Boot中可以使用Spring Boot Validation来对参数名称进行校验,需要的朋友可以参考下

今天在使用Validator框架数据验证的时候碰到了三个类似的注解,都是用来限制长度,但是用法上有区别:

1,@Size和@Length

@Data
public class LoginVo {
    @Length(min = 5, max = 17, message = "userName长度须在[5,17]") // 可以为 null,若不为 null,则长度为 [5, 17]
    private String userName;
    // @Size不能验证Integer,适用于String
    @Size(min = 1, max = 3, message = "password长度须在[1,3]")
    private String password;
    @Size(min = 1,max = 5,message = "list的Size在[1,5]") // list 可以为 null,若不为 null,则长度为 [1, 5]
    private List<String> list;
    @NotNull
    @Valid // 级联校验,该注解将会校验自定义类
    private OrderItem detailInfo;
}

 @Size是一个Bean验证注释,用于验证关联的String具有的长度受最小值和最大值限制的值.

 @Length是一个Hibernate特定的注释,与@Size具有相同的含义;

两者的区别:

​ 用@length限制长度为100,@length验证的应该为100个字符的长度,如99个汉字+2个数字,@length并不会报错;

​ 但用@size限制长度为100,同样情况下则会报错,即超出限制长度

​ 综上,@length限制长度为字符长度,@size限制长度为个数长度,@size为限制长度通用格式

2,@Colunm

@Entity
@Data
public class MyEntity {
    @Column(name = "MY_FIELD_1", length=13)
    private String myField1;
    @Column(name = "MY_FIELD_2")
    @Size(min = 13, max = 13)
    private String myField2;
    @Column(name = "MY_FIELD_3")
    @Length(min = 13, max = 13)
    private String myField3;
}

同样的在实体类当中可以定义@Colunm注解当中设置length属性。这是一个JPA注释,并且length属性由模式生成工具用于设置关联的SQL列长度,与DDL有关

总结

到此这篇关于Spring Boot使用Hibernate-Validator校验参数时的长度校验方法的文章就介绍到这了,更多相关SpringBoot Validator校验参数长度校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot整合zookeeper实现对节点的创建、监听与判断的案例详解

    Springboot整合zookeeper实现对节点的创建、监听与判断的案例详解

    这篇文章主要介绍了基于Springboot整合zookeeper实现对节点的创建、监听与判断,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • mybatis-plus版本不兼容问题的解决

    mybatis-plus版本不兼容问题的解决

    本文主要介绍了mybatis-plus与spring-boot3版本不兼容导致的BeanDefinitionStoreException问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】

    Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】

    这篇文章主要介绍了Java实现的二叉树常用操作,包括二叉树的前序建树,前中后递归非递归遍历及层序遍历等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • JVM创建对象及访问定位过程详解

    JVM创建对象及访问定位过程详解

    这篇文章主要介绍了JVM创建对象及访问定位过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • shenyu怎么处理sign鉴权前置到网关

    shenyu怎么处理sign鉴权前置到网关

    这篇文章主要为大家介绍了shenyu怎么处理sign鉴权前置到网关方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Java的编译时错误和运行时错误问题

    Java的编译时错误和运行时错误问题

    这篇文章主要介绍了Java的编译时错误和运行时错误问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Java实现SHA算法的方法详解

    Java实现SHA算法的方法详解

    这篇文章主要介绍了Java实现SHA算法的方法,结合实例形式较为详细的分析了Java实现sha算法的原理、实现与使用相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • IDEA的崛起自己定义快捷生成代码块的详细步骤

    IDEA的崛起自己定义快捷生成代码块的详细步骤

    这篇文章主要介绍了IDEA的崛起自己定义快捷生成代码块的详细步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java中的OpenTracing使用实例

    Java中的OpenTracing使用实例

    这篇文章主要介绍了Java中的OpenTracing使用实例,主要的OpenTracing API将所有主要组件声明为接口以及辅助类,例如Tracer,Span,SpanContext,Scope,ScopeManager,Format(用映射定义通用的SpanContext注入和提取格式),需要的朋友可以参考下
    2024-01-01
  • SpringBoot登录用户权限拦截器

    SpringBoot登录用户权限拦截器

    这篇文章主要介绍了SpringBoot登录用户权限拦截器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论