javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.Integer'. Check configuration for 'channel'
![](https://i-blog.csdnimg.cn/blog_migrate/125b9add8759aa37f7ccb482902c1cb8.png)
@Size不支持数值类型校验,仅支持字符、集合、数组的长度校验,
Integer 是数值类型,所以不能用@Size 校验数值范围 ,改为使用@Min @Max
![](https://i-blog.csdnimg.cn/blog_migrate/21d9f36c02b9a0cfb3174b0c7198d609.png)
@NotNull(message = "channel")
@Min(value = 1,message = "@Min 判断Integer最小值")
@Max(value = 999,message = "@Max 判断Integer最大值")
// @Size(min = 1, max = 999, message = "Integer不可以使用@Size 判断数值范围 改为使用@Min @Max")
private Integer channel;
拓展
@Validated注解 | @Valid注解 |
用在类型、方法和方法参数上。但是不能用在成员属性(字段)上 | 用在方法、构造函数、方法参数和成员属性(字段)上 |
校验注解
注解 | 说明 |
@Null | 限制只能为null |
@NotNull | 限制必须不为null |
@AssertFalse | 限制必须为false |
@AssertTrue | 限制必须为true |
@DecimalMax(value) | 限制必须为一个不大于指定值的数字 |
@DecimalMin(value) | 限制必须为一个不小于指定值的数字 |
@Digits(integer,fraction) | 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction |
@Future | 限制必须是一个将来的日期 |
@Max(value) | 限制必须为一个不大于指定值的数字 |
@Min(value) | 限制必须为一个不小于指定值的数字 |
@Past | 限制必须是一个过去的日期 |
@Pattern(value) | 限制必须符合指定的正则表达式 |
@Size(max,min) | 限制字符长度必须在min到max之间(不支持数值类型校验大小) |
@NotEmpty | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) |
@NotBlank | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 |
证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式 |
参考:
![](https://i-blog.csdnimg.cn/blog_migrate/38c5453385d022388d51fd3475cc8a6c.png)
参考:
https://blog.csdn.net/qq_41070393/article/details/107124734
https://blog.csdn.net/weixin_45853881/article/details/111402132