hibernate Validation 注解中,@Size、@Length 注解的含义和区别

本文详细介绍了Java中用于实体验证的常见注解,包括@Size、@Length、@Min、@Max等,并通过具体示例展示了如何在实体类中应用这些注解进行字段的有效性和范围检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


@Size(min=, max=) ,完整包名是 javax.validation.constraints.Size
验证实 体类中 类型是(Array、Collection、Map、String)的属性的长度长度是否在给定的范围之内。

@Length(min=, max=) ,完整包名是 org.hibernate.validator.constraints.Length
验证 实体类中 String 类型 属性的长度 是否在给定的范围之内。

由于@Size可适用各种类型的长度验证, 具有通用性,推荐使用 。


@Min 验证 Number 和 String 对象是否大等于指定的值
@Max 验证 Number 和 String 对象是否小等于指定的值。


public class UserVO {

    @NotNull(message = "用户ID不能为空",groups = {Update.class})
    private Integer id;

    @NotBlank(message = "姓名不能为空")
    @Length(message = "姓名位数区间{min}-{max}",min = 2,max = 5,groups = {Insert.class, Update.class})
   	private   String name;//姓名   

    @Size(message = "爱好最多{max}个爱好",max = 3,groups = {Insert.class, Update.class})
   	private  List<String> hobbyList;

    @NotNull(message = "住址不能为空")
    @Size(min = 2,max = 4,message = "住址长度{min}-{max}",groups = {Insert.class, Update.class})
    private  String address;
    
 	@Range(message = "年龄必须在{min}-{max}之间", min = 20, max = 40,groups = {Insert.class, Update.class})
   	private  Integer age;

    private  String sex;
    
    
	//===========================

    @GroupSequence({Insert.class,Update.class})
    public interface AllGroup{ }

    /**
     * 必须继承 Default组,否则groups = {Insert.class, Update.class}  不支持单个校验
     */
    public interface Insert extends Default{}

    public interface Update extends Default{ }
  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值