我有以下错误
异常类型:HV 000030:找不到验证类型“java.lang. Integer”的约束“javax.validation.constraints.Size”的验证器。请检查“discounted”的配置
我的代码是:
@Column(name= "discount_percentage")
@Size(min=0, max=90)
@Min(0)
@Max(90)
private Integer discountPercentage = 0;
我把它设置为0是因为我在加载视图时得到了一个NullPointerException。它是Integer是因为我读到了别人的问题,有些人说有时在使用@Size和基元类型时会有问题。
我该怎么办?先谢谢你了。
3条答案
按热度按时间56lgkhnf1#
@Size
是一个Bean验证注解,用于验证关联的String
是否具有length
受minimum and maximum
值限制的值。正如exception
所述,它不适用于Integer
类型。用途:
@Range
或者你的云也只使用
@Max or @Min
,这也会工作。欲了解更多信息,请看this链接。9rnv2umw2#
@Size
不用于验证最小值/最大值。它用于验证集合的大小、字符串的长度等。
在这种情况下,您应该改用
@Min
,@Max
。完整文档请参考此处:https://docs.oracle.com/javaee/7/api/javax/validation/constraints/Size.html
mv1qrgav3#
我在参数类型与验证器不匹配时观察到了这种模式。因为这里
List<String>
与List<Long>
不匹配Ex验证人:
注解使用: