【问题标题】:How to perform a validation on an attribute only if the value of the attribute is not null仅当属性的值不为 null 时如何对属性执行验证
【发布时间】:2023-02-26 16:03:12
【问题描述】:

我有一个项目模型的搜索条件。可以使用 ID 或项目名称搜索项目。

@Data
@Builder
public class ProjectSearchCriteria {
    @IsNumberValidatorConstraint(message = "invalid input for id")
    private String id;
    private String projectName;
}

我还创建了一个自定义验证器来检查 id 是否为数字(数字验证)。这也很完美。

但我的问题是,我有没有可能告诉春天?仅当 id 不为 null 时才执行数字验证?

例如:

http://localhost:8081/api/projects?id=1 (id needs to be validated)

http://localhost:8081/api/projects?projectName=project1 (No need to validate the id)

关于如何使它正常工作的任何想法?

干杯

【问题讨论】:

    标签: spring-boot spring-validation


    【解决方案1】:

    您可以使用多个验证器(注释)。 (javax.validation.constraints.NotNull)@NotNull 与此自定义验证器一起工作。

    尝试

    @Data
    @Builder
    public class ProjectSearchCriteria {
        @NotNull
        @IsNumberValidatorConstraint(message = "invalid input for id")
        private String id;
        private String projectName;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 2021-09-30
      • 2012-06-02
      • 1970-01-01
      • 2020-03-09
      相关资源
      最近更新 更多