【问题标题】:Class level validator not applicable to field in spring类级别验证器不适用于 spring 中的字段
【发布时间】:2019-02-22 10:37:59
【问题描述】:

我有一个自定义界面:

@Target({ TYPE, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = { MyCustomValidator.class })
@Documented
public @interface ValidData {

    String message() default EMPTY;

    Class<?>[] groups() default { };

    Class<? extends Payload>[] payload() default { };

}

我有一个类 - 直到现在 - 附加了这个验证器:

@ValidData(groups = AfterDefaultGroup.class)
public class RecoverData {

    private String data;

它有效,但我需要将验证器从类级别移动到字段级别。我试过这个:

public class RecoverData {

    @ValidData(groups = AfterDefaultGroup.class)
    private String data;

但我在这里遇到编译错误:

ValidData not applicable to field

我该如何解决?

【问题讨论】:

    标签: java spring validation spring-boot


    【解决方案1】:

    @Target 注释定义了可以应用此注释的位置。 您现在将其限制为 TYPEANNOTATION_TYPEright,这不允许在字段上使用它。

    根据documentation,你必须使用ElementType.FIELD

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      相关资源
      最近更新 更多