@Valid 校驗嵌套對象


Valid 校驗嵌套對象失效

例子

package com.hhjt.firefight.params;

import com.hhjt.firefight.entity.FireFightPlanResourceEntity;
import com.hhjt.firefight.entity.PlanTestResourceEntity;
import com.hhjt.firefight.entity.PlanTestTeamEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

/**
 * @author pengyifeng
 * @version 2.0
 * @ClassName TestPlanParam.java
 * @Description 撲火預案
 * @createTime 2021年08月24日 16:01:00
 */
@Data
public class TestPlanParam implements Serializable {

    /**
     * id
     */
    @ApiModelProperty(value = "id為空新增,否則修改")
    private Integer id;
    /**
     * 方案名稱
     */
    @ApiModelProperty(value = "方案名稱")
    @NotBlank(message = "方案名稱不能為空")
    @Size(max = 50, message = "方案名稱超長")
    private String planName;
    /**
     * 火災地點
     */
    @ApiModelProperty(value = "火災地點")
    @NotBlank(message = "火災地點不能為空")
    @Size(max = 100, message = "火災地點")
    private String fireAddr;
    /**
     * 林區面積
     */
    @ApiModelProperty(value = "林區面積")
    @NotBlank(message = "林區面積不能為空")
    @Size(max = 100, message = "林區面積超過上限")
    private String forestArea;
    /**
     * 指揮長
     */
    @ApiModelProperty(value = "指揮長")
    @NotBlank(message = "指揮長不能為空")
    @Size(max = 100, message = "指揮長超長")
    private String commander;
    /**
     * 副指揮長
     */
    @ApiModelProperty(value = "副指揮長")
    @Size(max = 100, message = "副指揮長超長")
    private String deputyCommander;
    /**
     * 指揮部成員
     */
    @ApiModelProperty(value = "指揮部成員")
    @Size(max = 255, message = "指揮部成員超長")
    private String commandMember;
    /**
     * 指揮部位置
     */
    @ApiModelProperty(value = "指揮部位置")
    @Size(max = 100, message = "指揮部位置超長")
    private String commandLocation;
    /**
     * 方案詳情
     */
    @ApiModelProperty(value = "方案詳情")
    private String planDetail;

    /**
     * 撲火隊伍 該對象內的屬性無法校驗
     */
    @ApiModelProperty(value = "撲火隊伍")
    @NotNull(message = "撲火隊伍不能為空")
    private List<PlanTestTeamEntity> teams;
    /**
     * 撲火物資 該對象內的屬性無法校驗
     */
    @ApiModelProperty(value = "撲火隊伍")
    @NotNull(message = "撲火物資不能為空")
    private List<PlanTestResourceEntity> resources;

}

嵌套對象需新增@Valid注釋

package com.hhjt.firefight.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

/**
 * 撲火預案-隊伍配置
 *
 * @author pengyifeng
 * @email pengyifeng@aliyun.com
 * @date 2021-08-24 14:44:43
 */
@Data
@TableName("fire_fight_plan_test_team")
public class PlanTestTeamEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 *id
	 */
	@ApiModelProperty(value = "id為空新增,否則修改")
	@TableId(type = IdType.AUTO)
	private Integer id;
	/**
	 * 預案id
	 */
	@ApiModelProperty(value = "預案id")
	private Integer fireFightTestPlanId;
	/**
	 * 隊伍id  新增@Valid注釋
	 */
	@Valid
	@NotNull(message = "teamId不能為空")
	@ApiModelProperty(value = "隊伍id")
	private Integer teamId;
	/**
	 * 隊伍人數 新增@Valid注釋
	 */
	@Valid
	@NotNull(message = "隊伍人數不能為空")
	@ApiModelProperty(value = "隊伍人數")
	private Integer teamMemNum;


}

接口 參數新增@Valid

    /**
     * 保存、更新
     */
    @ApiOperation(value = "保存、更新")
    @PostMapping("/saveOrUpdate")
    public BaseResp save(@RequestBody @Valid TestPlanParam param){
        BaseResp resp=testPlanService.saveOrUpdate(param);
        return resp;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM