如何在JSR-303组合注释中设置消息?

时间:2013-08-21 11:41:09

标签: java annotations bean-validation

看一个例子:

@Pattern(regexp="[0-9]*")
@Size(max =5)
@Documented
@Target({ANNOTATION_TYPE, METHOD, FIELD, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Constraint(validatedBy = {}) //do not want any programmatic validation
public @interface CustomAnnotation {
    String message() default "";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
    }
}

带注释字段的示例:

@CustomAnnotation(message = "some important message")
private String field;

当字段违反@Pattern时,我从@Pattern获取的错误消息不是来自@CustomAnnotation。这是仅显示@CustomAnnotation消息的方式吗?

1 个答案:

答案 0 :(得分:2)

您需要将元注释@ReportAsSingleViolation添加到CustomConstraint的定义中。这样,任何违反其组成约束的行为都将被报告为单一违反组合约束。另请参阅BV参考中的Constraint Composition部分。