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

Luc*_*. D 5 java spring hibernate bean-validation

我有以下错误

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;
Run Code Online (Sandbox Code Playgroud)

我将其设置为0,因为我在加载视图时遇到NullPointerException.并且是整数,因为我正在阅读其他问题,有些人说有时在使用@Size和原始类型时会出现问题.

我该怎么办?提前致谢.

Ami*_*era 9

@Size是一个Bean Validation批注,用于验证关联String的值length是否受minimum and maximum值限制.正如你exception所说,它不适用于Integer类型.

使用: @Range

@Column(name= "discount_percentage")
@Range(min=0, max=90)
private Integer discountPercentage = 0;
Run Code Online (Sandbox Code Playgroud)

或者你也只使用云@Max or @Min,这也会起作用.欲了解更多信息,请查看链接.

  • 请注意,@Range 是在 `org.hibernate.validator.constraints` 中找到的,而不是在 `javax.validation.constraints` 中找到的 (2认同)

Mạn*_*yễn 8

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

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

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

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