web-dev-qa-db-ja.com

制約 'javax.validation.constraints.Size'のバリデーターが見つかりませんでした

次のエラーがあります

javax.validation.UnexpectedTypeException:HV000030:型 'Java.lang.Integer'を検証する制約 'javax.validation.constraints.Size'のバリデーターが見つかりませんでした。 「割引」の設定を確認してください

私のコードは:

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

ビューをロードするときにNullPointerExceptionを受け取っていたため、0に設定しました。そして、私は他の質問で読んでいたので整数です、そして一部の人々は、プリミティブ型で@Sizeを使用するときに時々問題があると言います。

私は何をすべきか?前もって感謝します。

5
Lucas. D

@Sizeは、関連付けられたStringの値がlengthminimum and maximum値で区切られていることを検証するBean検証アノテーションです。そして、あなたのexceptionIntegerタイプには適用しないと言っています。

使用:@Range

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

または、クラウドも@Max or @Minのみを使用し、それも機能します。詳細については、 this リンクをご覧ください。

9
Amit Bera