Validation error: "No validator could be found for type: java.lang.Integer"

JavaHibernateValidationSpring Mvc

Java Problem Overview


I am working on a project with Spring why do I keep getting the following error?

> javax.validation.UnexpectedTypeException:
> No validator could be found for type: java.lang.Integer

Here is my code:

package com.s2rsolutions.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;

@Entity
@Table(name = "sales")
public class Sales {

	@NotEmpty(message = "The above field must not be blank.")
	@Column(name = "ttl_d_sls_lst_mth", nullable = false)
	private Integer ttl_d_sls_lst_mth;

	@NotEmpty(message = "The above field must not be blank.")
	@Column(name = "ttl_d_sls_6_mth", nullable = false)
	private Integer ttl_d_sls_6_mth;

	@Column(name = "date_added")
	private Date addedDate;

	@Id
	@Column(name = "username")
	private String username;

    // other fields/getters/setters omitted for brevity

}

Java Solutions


Solution 1 - Java

As per the javadoc of NotEmpty, Integer is not a valid type for it to check. It's for Strings and collections. If you just want to make sure an Integer has some value, javax.validation.constraints.NotNull is all you need.

> public @interface NotEmpty > > Asserts that the annotated string, > collection, map or array is not null > or empty.

Solution 2 - Java

As the question is asked simply use @Min(1) instead of @size on integer fields and it will work.

Solution 3 - Java

As stated in problem, to solve this error you MUST use correct annotations. In above problem, @NotBlank or @NotEmpty annotation must be applied on any String field only.

To validate long type field, use annotation @NotNull.

Solution 4 - Java

For this type error: UnexpectedTypeException ERROR: We are trying to use incorrect Hibernate validator annotation on any bean property. For this same issue for my Springboot project( validating type 'java.lang.Integer')

The solution that worked for me is using @NotNull for Integer.

Solution 5 - Java

You can add hibernate validator dependency, to provide a Validator

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.12.Final</version>
</dependency>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSJSView Question on Stackoverflow
Solution 1 - JavaAffeView Answer on Stackoverflow
Solution 2 - JavaNitin JhaView Answer on Stackoverflow
Solution 3 - JavaThamaraikannan RajendranView Answer on Stackoverflow
Solution 4 - JavatejView Answer on Stackoverflow
Solution 5 - JavaYacineView Answer on Stackoverflow