简体   繁体   English

找不到类型为java.lang.Long的验证器:找不到类型为java.lang.Long的验证器

[英]No validator could be found for type: java.lang.Long :No validator could be found for type: java.lang.Long

I have an object class like which has no required field except Id. 我有一个像这样的对象类,除了ID外没有任何必填字段。 here is the code: 这是代码:

Entity
@XmlRootElement
@Table(name = "T_HOST_SPEC")
@Cacheable(false)
@NamedQueries({
    @NamedQuery(name = HostSpec.FIND_ALL, query = "SELECT m FROM HostSpec m")
    ,@NamedQuery(name = HostSpec.FIND_BY_IP_CONTEXT_PATH_PORT, query = "SELECT m FROM HostSpec m WHERE m.ip = :ip AND m.contextPath =:contextPath AND m.port =:port ")})
public class HostSpec extends AbstractEntity {



    @Id
    @SequenceGenerator(name = "HOST_SPEC_SEQUENCE_GENERATOR", sequenceName = "HOST_SPEC_SEQ", initialValue = 1, allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "HOST_SPEC_SEQUENCE_GENERATOR")
    @XmlElement(name = "id")
    @NotNull
    @Column(name = "ID", nullable = false)
    private Long id;

    @Size(max =200 )
    @Column(name = "APP_NAME",length = 25)
    @XmlElement(name = "APP_NAME")
    private String appName;

    @Size(max =1000 )
    @Column(name = "APP_SERVER_INFO",length = 25)
    @XmlElement(name = "APP_SERVER_INFO")
    private String serverInfo;

    @Size(max =100 )
    @Column(name = "CONTEXT_PATH",length = 25)
    @XmlElement(name = "CONTEXT_PATH")
    private String contextPath;

    @Size(max =255 )
    @Column(name = "BUILD_DATE",length = 25)
    @XmlElement(name = "BUILD_DATE")
    private String buildDate;

    @Size(max =4000 )
    @Column(name = "DESCRIPTION",length = 25)
    @XmlElement(name = "DESCRIPTION")
    private String description;


    @Size(max =50 )
    @Column(name = "IP",length = 25)
    @XmlElement(name = "IP")
    private String ip;

    @Size(max =200 )
    @Column(name = "MODULE_NAME",length = 25)
    @XmlElement(name = "MODULE_NAME")
    private String moduleName;

    @Size(max =100 )
    @Column(name = "NAME",length = 25)
    @XmlElement(name = "NAME")
    private String name;

    @Size(max = 10)
    @XmlElement(name = "PORT")
    @Column(name = "PORT")
    private Long port;

    @Size(max =20 )
    @Column(name = "PROTOCOL",length = 25)
    @XmlElement(name = "PROTOCOL")
    private String protocol;


    @Size(max = 10)
    @XmlElement(name = "VERSION_CODE")
    @Column(name = "VERSION_CODE")
    private Long versionCode;

    @Size(max =100 )
    @Column(name = "VERSION_NAME",length = 25)
    @XmlElement(name = "VERSION_NAME")
    private String versionName;

    @Size(max =100 )
    @Column(name = "VIRTUAL_SERVER_NAME",length = 25)
    @XmlElement(name = "VIRTUAL_SERVER_NAME")
    private String serverName;

//getters & setters

when I try to run it, this exception is throws: javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.Long please help 当我尝试运行它时,抛出此异常:javax.validation.UnexpectedTypeException:HV000030:找不到以下类型的验证器:java.lang.Long请帮助

@Size is not intended to be used on type Long (you shall use @Max in this case). @Size不适用于Long类型(在这种情况下,您应该使用@Max )。

Hence, you should replace @Size(max = 10) with the corresponding @Max annotation on fields port and versionCode 因此,您应该在portversionCode上用相应的@Max注释替换@Size(max = 10)

According to the javadoc, @Size can be used on following types : 根据javadoc, @Size可以用于以下类型:

  • String (string length is evaludated) 字符串(评估字符串长度)
  • Collection (collection size is evaluated) 收集(评估收集大小)
  • Map (map size is evaluated) 地图(评估地图大小)
  • Array (array length is evaluated) 数组(评估数组长度)
  • null elements are considered valid. 空元素被视为有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 找不到以下类型的验证器:java.lang.Long - No validator could be found for type: java.lang.Long 找到请求类型 [java.lang.Long] 的 HttpMessageConverter - HttpMessageConverter found for request type [java.lang.Long] 没有找到能够将[java.lang.Long]类型转换为[User]类型的转换器 - Grails No converter found capable of converting from type [java.lang.Long] to type [User] MessageBodyProviderNotFoundException:找不到针对媒体type = application / json,type = class java.lang.Long的MessageBodyWriter - MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class java.lang.Long java.lang.IllegalArgumentException:找到了多个参数类型候选:[java.lang.String]和[java.lang.Long] - java.lang.IllegalArgumentException: Found more than one parameter type candidate: [java.lang.String] and [java.lang.Long] java.lang.RuntimeException: 无法反序列化对象。 无法将 java.lang.Long 类型的值转换为布尔值 - java.lang.RuntimeException: Could not deserialize object. Failed to convert value of type java.lang.Long to boolean 找不到以下类型的验证器:java.lang.Short - No validator could be found for type: java.lang.Short 找不到类型的验证器:java.lang.Object - No validator could be found for type: java.lang.Object 找不到类型的验证器:java.lang.Integer - No validator could be found for type: java.lang.Integer 验证错误:“找不到类型的验证器:java.lang.Integer” - Validation error: “No validator could be found for type: java.lang.Integer”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM