J'ai l'erreur suivante
javax.validation.UnexpectedTypeException: HV000030: aucun validateur n'a pu être trouvé pour la contrainte 'javax.validation.constraints.Size' de type de validation 'Java.lang.Integer'. Vérifiez la configuration pour "actualisé"
Mon code est:
@Column(name= "discount_percentage")
@Size(min=0, max=90)
@Min(0)
@Max(90)
private Integer discountPercentage = 0;
Je l'ai mis à 0 parce que j'obtenais une NullPointerException lors du chargement de ma vue. Et est Integer parce que je lisais dans d'autres questions, et certaines personnes disent que parfois il y a des problèmes lors de l'utilisation de @Size avec des types primitifs.
Que devrais-je faire? Merci d'avance.
@Size
est une annotation de validation de bean qui valide que le String
associé a une valeur dont length
est délimitée par le minimum and maximum
valeurs. Et comme votre exception
le dit, cela ne s'applique pas au type Integer
.
Utilisation: @Range
@Column(name= "discount_percentage")
@Range(min=0, max=90)
private Integer discountPercentage = 0;
Ou vous utilisez également le cloud uniquement @Max or @Min
et cela fonctionnera aussi. Pour plus d'informations, veuillez consulter le lien this .
@Size
n'est pas utilisé pour valider min/max.
Il est utilisé pour valider la taille des collections, la longueur des chaînes, etc.
Dans ce cas, vous devez utiliser @Min
, @Max
au lieu.
Reportez-vous ici pour le document complet: https://docs.Oracle.com/javaee/7/api/javax/validation/constraints/Size.html