在处理请求时,我在控制器传入了一个对象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类
一般创建时间和删除标识字段都不用前端传入的,是在存数据库的时候自动或者手动设置。
封装一个请求对象 cope到user中