如何在属性文件中设置@Size注释中的最大值?

时间:2017-02-10 23:15:02

标签: java hibernate-validator

我正在使用Hibernate Validator Version 5.3.0。

以下是我要验证的课程。

public class DocumentRequest {

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

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

此处的问题是@Size最大值是“magic”号码(引用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

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

仅仅因为声纳抱怨某事并不意味着你的代码很糟糕。

如果你把这个"魔法"声纳已经很高兴价值在班级顶部的private static final。不需要把它变成一个属性(我怀疑如果有人决定稍后改变它,你的系统反应会很好。)