@NotEmpty
Hibernate Validator を使用しているときに、およびアノテーションが によって返される配列に@NotNull
重複したメッセージを生成することに気付きました。InvalidValue
getInvalidValues(...)
のようなメッセージを指定すると@NotEmpty(message = "My error message.")
、「My error message.」という InvalidValue が 1 つ取得されます。および「null または空ではない可能性があります」の 2 番目
メッセージを含めない場合 (たとえば@NotEmpty
、それ自体)、「null または空ではない可能性があります」というメッセージ フィールドを持つ InvalidValue の 2 つのコピーを取得します。
Hibernate Validator がこれを行うのはなぜですか?? パラメーターを使用して上書きする値、または既定のメッセージのいずれかのメッセージを取得する必要がありますが、両方を取得する必要はありませんか??
より多くのコンテキストについて:
私はClassValidator<T>
独自のClassValidator<MyClass>
実装で拡張しています。アノテーションでは実行できないカスタム検証を追加するためにそうしています。検証を判断するために、クラスの複数のプロパティの実行時の値を確認する必要があります。
オーバーライドする myClassValidator.getInvalidValues() を呼び出すと、検証が行われます。の実装内でgetInvalidValues()
呼び出しsuper.getInvalidValues()
て初期エラー リストを作成し、カスタム エラーをそのリストに追加します。いずれの場合でも、 への呼び出しにsuper.getInvalidValues()
は重複メッセージが含まれます。1 つはアノテーションに渡されたメッセージ プロパティに一致し、もう 1 つはアノテーション メッセージのストック値に一致します。