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

No validator could be found for constraint 'javax.validation.constraints.Size'

我有以下错误

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.Integer'. Check configuration for 'discounted'

我的代码是:

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

我将它设置为 0,因为我在加载视图时收到 NullPointerException。 并且是 Integer 因为我正在阅读其他问题,有些人说在将 @Size 与原始类型一起使用时有时会出现问题。

我该怎么办?提前致谢。

@Size 不用于验证 min/max.

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

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

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

@Size 是一个 Bean Validation 注释,它验证关联的 String 具有一个值,其 lengthminimum and maximum 值限制。正如您的 exception 所说,它不适用于 Integer 类型。

使用:@Range

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

或者你的云也只使用 @Max or @Min 也可以。有关更多信息,请查看 this link.