找不到约束 'javax.validation.constraints.Size' 的验证器

2022-09-02 19:45:21

我有以下错误

javax.validation.UnexpectedTypeException: HV000030: 找不到约束 'javax.validation.constraints.Size' 验证类型 'java.lang.Integer' 的验证器。检查配置是否“打折”

我的代码是:

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

我将其设置为0,因为我在加载视图时获得了NullPointerException。并且是整数,因为我正在阅读其他人的问题,有些人说有时在将@Size与基元类型一起使用时存在问题。

我该怎么办?提前致谢。


答案 1

@Size是一个 Bean 验证批注,用于验证关联节点是否具有受值限定的值。正如你所说,它不适用于类型。Stringlengthminimum and maximumexceptionInteger

用:@Range

@Column(name= "discount_percentage")
@Range(min=0, max=90)
private Integer discountPercentage = 0;

或者您的云也仅使用,这也将起作用。有关更多信息,请查看链接。@Max or @Min


答案 2

@Size不用于验证最小值/最大值。

它用于验证集合的大小、字符串的长度等。

在这种情况下,您应该改用 。@Min@Max

有关完整文档,请参阅此处:https://docs.oracle.com/javaee/7/api/javax/validation/constraints/Size.html


推荐