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;
}