我试图在插入数据库之前使用Hibernate验证器来验证POJO。
bean中有一个字段,长度可以是8或10。
我尝试使用内置约束List
将它们组合在一起,期望其中一个条件通过,而不是验证通过。
@Length.List({@Length(min=8, max=8,message="Code is either 8 or 10 characters in length"),@Length(min=10, max=10,message="Code is either 8 or 10 characters in length")})
public String getCode() {
return this.code;
}
但是,结果显示列表中的所有条件都必须通过以使其有效。所以我想知道反正是为了进行OR检查。
答案 0 :(得分:2)
我认为这个注释的工作方式是这样的:
@Length(min = 8, max = 10)
public String getCode() {
return code;
}
换句话说,9
也将被视为有效,这不是您正在寻找的。我不确定是否有办法在Hibernate注释中对它们进行两次验证和OR操作。
看起来你可以使用@Pattern
验证:
@Pattern(regexp="(.{8}|.{10})", message="Should either be 8 or 10 characters")
public String getCode() {
return code;
}