Java 如何在属性文件的@Size注释中设置最大值?
我使用的是Hibernate验证程序版本5.3.0 下面是我要验证的类Java 如何在属性文件的@Size注释中设置最大值?,java,hibernate-validator,Java,Hibernate Validator,我使用的是Hibernate验证程序版本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; }
public class DocumentRequest {
@NotEmpty(message="{invalid.docId}")
private String docId;
@NotEmpty(message="{invalid.title}")
@Size(max=200, message="{invalid.title}")
private String title;
}
这里的问题是@Size
的max值是一个“神奇”数字(引用声纳
)。
如何从属性文件进行设置
我试图补充如下:
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
,但max可以是int
,我正在将String
传递给它。因此:
类型不匹配:无法从字符串转换为int
有没有办法做到这一点 声纳发出抱怨并不意味着你的代码不好
如果你把这个“神奇”的值放在你班最顶端的
私人静态决赛中,Sonar已经很高兴了。无需将其设置为属性(我怀疑如果有人稍后决定更改此属性,您的系统会反应良好)。同意,Sonar将注释中的常量标记为一个问题似乎是误导。这就是说,我们在Hibernate验证器中有一个用于动态约束定义的API,您可以使用它,但实际上在这种情况下不应该这样做。