[英]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
因此,您应该在port
和versionCode
上用相应的@Max
注释替换@Size(max = 10)
According to the javadoc, @Size
can be used on following types : 根据javadoc, @Size
可以用于以下类型:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.