验证错误:“找不到类型:java.lang.Integer 的验证器”

2022-08-31 11:39:34

我正在与Spring一起处理一个项目,为什么我不断收到以下错误?

javax.validation.UnexpectedTypeException:
找不到类型:java.lang.Integer 的验证器

这是我的代码:

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

}

答案 1

根据NotEmpty的javadoc,Integer不是它要检查的有效类型。它适用于字符串和集合。如果你只是想确保一个整数有一定的价值,就是你所需要的。javax.validation.constraints.NotNull

公共@interface NotEmpty

断言带批注的字符串、集合、映射或数组不为 null 或空。


答案 2

正如所问的问题一样,只需使用@Min(1)而不是在整数字段上@size,它就会起作用。


推荐