96

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

}
2
  • see this answer forum.springsource.org/… Commented May 12, 2011 at 18:40
  • Looks like this is similar to what I faced earlier, this post helped me. To customize the error messages from failing at the bind time. Look this link for more details on creating a MessageSource bean in your application context and create a messages.properties resource bundle : Commented May 12, 2011 at 19:02

5 Answers 5

238

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.

Sign up to request clarification or add additional context in comments.

5 Comments

+1. @NotEmpty, being proprietary, should be avoided altogether. It can be replaced by @NotNull, @Range and @Size (depending on context)
Agree on avoiding vendor specific features when possible, but it is to its credit Free and Open Source :)
Amazing how easy it is to unintentionally annotate an integer field with a @NotEmpty annotation. And then you get the less than helpful warning “No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.Integer'.”
What would be excellent is if there is a way of being able to get a more verbose error message to understand which property caused the issue for the exception thrown. If anyone knows this I would be very glad to know the answer. Thanks for the post it solved my problem.
@Beezer ConstraintViolationException has an additional method getConstraintViolations() that returns the list of ConstraintViolation objects that then each have a message.
14

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.

1 Comment

@NotEmpty can also, be applied to List or any other collection.
12

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

Comments

6

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.

1 Comment

Please improve formatting and explain why you are suggesting this as a suitable answer
4

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>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.