Spring,JSR 303 - 嵌套字段上的验证组

Spring, JSR 303 - Validation groups on nested fields

这是例子,胜于文字:

public class Person{

   private String name;

   // 1 ) @Valid(FirstAdress.class) -> The attribute value is undefined for the annotation type Valid
   // 2 ) @Validated(FirstAdress.class) -> The annotation @Validated is disallowed for this location
   @Valid
   private Adress firstAdress;

   // 1 ) @Valid(SecondAdress.class)
   // 2 ) @Validated(SecondAdress.class)
   @Valid
   private Adress secondAdress;

}

public class Adress {

   @Size(min = 5, groups = { FirstAdress.class })
   @Size(min = 10, groups = { SecondAdress.class })
   private String city;

   public interface FirstAdress{
   }

   public interface SecondAdress{
   }
}

因此,对于对象 firstAdress,字段 city 必须至少为 5 个字符,对于 secondAdress,city 必须至少为 10 个字符(仅作为示例)。

代码中的解决方案1)和2)还没有working/available,我想知道我想做的是否可行,或者是否有其他方法可以实现。

非常感谢!

我试过了:

@Valid
@ConvertGroup(to = FirstAdress.class)
private Adress firstAdress;

@Valid
@ConvertGroup(to = SecondAdress.class)
private Adress secondAdress;

现在它似乎有效!如果此解决方案最终出现问题,我将更新此 post :)