2017-07-25 39 views
1

我有一個對象類,除了Id以外沒有必需的字段。這裏是代碼:找不到類型驗證器:java.lang.Long:沒有驗證器可以找到的類型:java.lang.Long

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 

,當我嘗試運行它,這個例外是拋出: javax.validation.UnexpectedTypeException:HV000030:沒有驗證可以爲類型中找到:java.lang.Long中 請幫助

+1

您可以嘗試從屬性'port'和'versionCode'中刪除'@Size(max = 10)'? –

+0

@ArnaudDenoyelle - 非常感謝。這解決了我的問題 –

+1

好吧,我爲未來的谷歌搜索答案然後。 –

回答

2

@Size不適用於Long型(在這種情況下,您應該使用@Max)。

因此,則應該與相應的@Max註釋的字段portversionCode

取代@Size(max = 10)據的Javadoc,@Size可以在以下類型一起使用:

  • 字符串(字符串長度evaludated)
  • 藏品(收藏尺寸被評估)
  • 地圖(地圖尺寸被評估)
  • 陣列(評估陣列長度)
  • 空元素被視爲有效。
相關問題