2017-02-10 50 views
0

我正在使用Hibernate Validator Version 5.3.0。如何在屬性文件中設置@Size批註中的最大值?

以下是我想要驗證的類。

public class DocumentRequest { 

    @NotEmpty(message="{invalid.docId}") 
    private String docId; 

    @NotEmpty(message="{invalid.title}") 
    @Size(max=200, message="{invalid.title}") 
    private String title; 
} 

這裏的問題是@Size最大值是「神奇」號(報價Sonar)。 如何從屬性文件中設置它?

我試圖如下添加:

public class DocumentRequest { 

    @NotEmpty(message="{invalid.docId}") 
    private String docId; 

    @NotEmpty(message="{invalid.title}") 
    @Size(max="{max.default.value}", message="{invalid.title}") 
    private String title; 
} 

我validation.properties文件添加max.default.value,但最大可int,我路過String它。因此,作爲一個結果:

Type mismatch: cannot convert from String to int

有什麼辦法來實現這一目標?

回答

0

只是因爲Sonar抱怨某事並不意味着你的代碼不好。

如果您將此「魔術」值放入班級頂部的private static final,Sonar將已經很開心。沒有必要使它成爲一個屬性(我懷疑你的系統會反應良好,如果有人決定稍後改變它)。

+0

同意,Sonar在註釋中標記常量作爲問題看起來只是被誤導了。也就是說,我們在Hibernate Validator中有一個用於動態約束消除的API,您可以使用它,但實際上在這種情況下不應該做什麼。 – Gunnar

相關問題