我在int属性中使用验证:
@Digits(integer=6,fraction=0)
private Integer idOrder;
但我希望这个属性正好有6位数。
我该怎么做? (使用JSP + Spring + Hibernate)
答案 0 :(得分:7)
由于您需要6位数字,我认为您应该使用字符串属性。如果在某些情况下你需要它作为int,你可以做一个
public int getIdOrder(){ return Integer.parseInt(idOrder);}
在String上,您可以使用模式验证。这将是这样的事情:
@Pattern(regexp="\\d{6}")
private String idOrder;
另一个选择是将idOrder保持为int并为字符串创建一个getter:
public String getIdOrgetAsString(){
String s = "000000" + idOrder;
return s.substring(s.length() - 6);
}
无论如何,有一些选择。
答案 1 :(得分:2)
您确定您的验证工作正常吗?
Hibernate文档说:
检查属性是否为最多整数位数和小数位数的数字。 1
究竟6位数是什么意思?是否支持前导零?或者数字应该在100.000和999.999之间。在第一种情况下,我猜你的数字应该是一个字符串(使用@Length),在第二种情况下,我猜你应该使用@Min和@Max。