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アノテーションで2つの検証と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 に答える