问题遇到的现象和发生背景
在处理请求时,我在控制器传入了一个对象user,现在,我希望在映射参数时,忽略其中的某几个字段
因为用户可能对某个字段输入奇奇怪怪的参数,这无疑增加了验证的负担
问题相关代码,请勿粘贴截图
@PostMapping("/register")
public JsonResult<Void> register(@Validated({Insert.class}) User user) {
// do something
return JsonResult.success();
}
@TableName("t_user")
@Data
@NoArgsConstructor
public class User extends UserRegisterVo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
// 一些其他字段
// 这个字段我希望不解析
private LocalDateTime createTime;
}
我的解答思路和尝试过的方法
我尝试 设置UserRegisterVo这个类,通过将UserRegisterVo的值手动传给User类解决问题。
public User(UserRegisterVo father){
this.setAccount(father.getAccount());
this.setUsername(father.getUsername());
this.setPassword(father.getPassword());
}
我想要达到的结果
有没有简便的方式,在映射User对象时忽略某个字段
否则每个不同的业务,都需要一个新的Vo类