内部类 参数校验

2022-07-22 17:26:58
在字段上加上@Valid 就可以了。


package com.ecarx.ads.processstore.domain.dto;

import com.ecarx.ads.processstore.domain.annotation.OutFormatValidator;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 类描述 <p>
 * @since 2020/7/22 10:15
 */
@Data
public class StoreFineQueryDto {
    @NotBlank(message = "taskId不可为空")
    String taskId;

    // @Valid 不然内部类校验不生效
    @NotEmpty(message = "data不可为空")
    @Valid
    List<StoreFineQueryDto.Error> errorList;

    @Data
    public static class Error {

        @NotBlank(message = "errorId不可为空")
        String errorId;
        @NotBlank(message = "layerName不可为空")
        String layerName;
        Long featureId;
        String featureWkt;
        /**
         * edtjson;编辑平台格式
         * geojson;单图层geojson
         */
        @OutFormatValidator(message = "outFormat输出格式只能为editjson,geojson")
        @NotNull(message = "outFormat不可为空")
        String outFormat;

        /**
         * 查询结果存放目录
         */
        @NotBlank(message = "outDir不可为空")
        String outDir;
    }
}