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

Lucas. D picture Lucas. D · May 3, 2018 · Viewed 18.1k times · Source

I have the following error

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

My code is:

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

I set it to 0 because i was getting a NullPointerException when loading my view. And is Integer because i was reading in others question, and some people says that sometimes there are problems when using @Size with primitive types.

What should i do? Thanks in advance.

Answer

Amit Bera picture Amit Bera · May 3, 2018

@Size is a Bean Validation annotation that validates that the associated String has a value whose length is bounded by the minimum and maximum values. And as your exception says it does not apply to Integer type.

Use: @Range

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

Or you cloud also use only @Max or @Min and that will work too. For more info please take a look on this link.