0

我正在尝试使用 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 检查。

4

1 回答 1

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;
}
于 2012-06-05T11:52:52.593 回答