我正在尝试使用约束组合,并希望为每个组合约束定义组,如下例所示:-
复合约束
@Target({
ElementType.FIELD,
ElementType.METHOD,
ElementType.PARAMETER,
ElementType.TYPE,
ElementType.ANNOTATION_TYPE
})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@DummyValid1(group = Group1.class)
@DummyValid2(group = Group2.class)
@Constraint(validatedBy = {})
public @interface DummyCompositeValid {
String message() default "The bean is invalid.";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
数据 bean
@DummyCompositeValid
public class DummyBean {
//Fields declaration, Setter and Getter
}
业务验证方法
this.validator.validate(dummyBean, Group1.class, Group2.class);
结果是 dummyBean 没有被验证。我很困惑,因为该组在没有复合约束的情况下直接定义时运行良好,如下所示: -
数据 bean
@DummyValid1(group = Group1.class)
@DummyValid2(group = Group2.class)
public class DummyBean {
//Fields declaration, Setter and Getter
}
您能帮忙提供建议和进一步解释吗?非常感谢您提前提供的帮助。我期待着尽快收到您的来信。
问候,
查理