Groups in Bean検証を理解しようとしています。
たとえば、Beanがあり、特定のケースで特定のフィールドのみを検証したい場合は、それらをグループ化する必要がありますか?
@NotNull (groups=MyClassX.class)
@Min (groups=MyClassA.class) // 1
@Pattern(xxxxx, groups = MyClassA.class) // 2
private String field1;
@NotNull (groups=MyClassX.class)
@Min (groups=MyClassX.class)
@Pattern(xxxxx, groups=MyClassX.class))
private String field2;
@NotNull (groups=MyClassX.class)
@Min (groups=MyClassX.class)
@Pattern(xxxxx, groups=MyClassA.class) //3
private String field3;
上記の例から私の理解は、MyClassA
をバリデーターに渡した場合、@Min
および@Pattern
ために Field1
および@Pattern
ために field3
は検証されるだけですか? (番号1、2、3が付いています)
私はこれを正しく理解しましたか? Groups
属性のないフィールドはありません。したがって、デフォルトグループはありません。
まず、これが javax.validation javadoc です。
Beanを検証する場合、実際には Validator.validate(Tオブジェクト、Java.lang.Class ... groups) を呼び出します
次に、指定されたグループの検証制約をチェックします。複数の検証ケースを使用できます。
質問であなたが述べたことは正確です。
制約にグループを設定しない場合、制約はデフォルトグループに属します。これは、validate(Tオブジェクト)を呼び出すときにグループを指定しない場合、検証される唯一のグループです。