2

私は次のような豆を持っています:

  @Data
  public static class ClassUnderTest {
    @NotNull
    private String field1;

    @NotNull
    @Since(2.0)
    private String field2;

    @NotNull
    @Until(3.0)
    private String field3;
  }

@Sinceまた@Until、特定の API バージョンについて、REST API の一部のフィールドのシリアライズ/デシリアライズを回避できるようにする Gson アノテーションです。

この API の入力ペイロードで Bean 検証を実行して、制約違反を発生させます。Gson アノテーション (グループではなく!) に基づいて、バージョンごとに同じ違反を発生させないようにしたいと考えています。


a から、違反を引き起こした(like / )ConstraintViolation<T>を取得して、何かによって注釈が付けられているかどうかを確認する方法はありますか?MemberMethodField

Bean Validation で検証のバージョン管理を処理する方法はありますか?

私が持っている唯一の解決策は、パス( )からそのメンバーを取得するgetPropertyPathようですが、それは簡単ではないようです...

4

1 に答える 1

0

経由で違反からプロパティ名を取得できますgetPropertyPath()。とはいえ、バージョンに対応するグループに制約を割り当てることは、より良いアプローチかもしれません。検証グループは既存のグループを拡張することもできることに注意してください。これは、新しいバージョンで追加されたモデルの制約に役立つ場合があります。

于 2013-03-15T18:18:20.007 に答える