我正在尝试使用Constraint composition,并希望为每个合成约束定义组,如下例所示: -
@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 {};
}
@DummyCompositeValid
public class DummyBean {
//Fields declaration, Setter and Getter
}
this.validator.validate(dummyBean, Group1.class, Group2.class);
结果是dummyBean尚未验证。我很困惑,因为直接定义组时工作得很好,没有复合约束,如下所示: -
@DummyValid1(group = Group1.class)
@DummyValid2(group = Group2.class)
public class DummyBean {
//Fields declaration, Setter and Getter
}
您能否请进一步提供建议和解释?非常感谢您的帮助。我很期待很快收到你的来信。
此致
Charlee Ch
答案 0 :(得分:2)
我已经向Hibernate验证论坛提出了这个问题,并希望将结果告诉我们如下: -
我想要做的是不可能的。组合约束从主注释继承组。这是规范的一部分:
主要约束注释中的组继承自 作文注释。组成注释上的任何组定义都将被忽略。同样,有效载荷来自 主要约束注释由组合注释继承。作曲中的任何有效载荷定义 注释被忽略。