You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

javax.validation.Size校验Integer类型报HV000030错误求助

解决javax.validation.UnexpectedTypeException问题

问题根源

你碰到的HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.Integer'错误,核心原因很明确:@Size注解压根不适用于Integer数字类型。

@Size是用来校验字符串长度、集合元素数量或者数组长度的注解,它完全不负责数字的取值范围校验。你把它用在Integer类型的discountPercentage字段上,Hibernate Validator找不到对应的校验器,自然就抛出异常了。

修复方案

其实你已经用对了校验数字范围的注解——@Min(0)和@Max(90),这两个才是专门针对Integer、Long等数字类型做取值范围限制的。只需要把错误的@Size注解删掉就行,修改后的代码如下:

@Column(name= "discount_percentage") 
@Min(0) 
@Max(90) 
private Integer discountPercentage = 0;

补充说明

你把字段初始化为0来避免视图加载时的NullPointerException,这个做法很合理。如果字段没有初始化,当视图层尝试访问它时,若值为null就会触发空指针异常,初始化为0能很好地规避这个问题。

内容的提问来源于stack exchange,提问作者Lucas. D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:45:44