Java 如何用Jackson在setter方法中使用验证注释

Java 如何用Jackson在setter方法中使用验证注释,java,validation,jackson,Java,Validation,Jackson,我知道我可以将注释放在年龄字段上 但我想在setAge方法中验证age,下面是我的代码: 类用户控制器{ @PutMapping 公共响应部分更新(@RequestBody@validateduserdto UserDTO){ 返回userService.partialUpdate(userDTO); } } 公共类UserDTO{ 私有字符串用户名; 私人整数年龄; 公共无效设置(@Min(0)@Max(100)整数年龄){ 这个。年龄=年龄; } } 当我给出age=101时,它是有效的

我知道我可以将注释放在年龄字段上

但我想在setAge方法中验证age,下面是我的代码:

类用户控制器{
@PutMapping
公共响应部分更新(@RequestBody@validateduserdto UserDTO){
返回userService.partialUpdate(userDTO);
}
}
公共类UserDTO{
私有字符串用户名;
私人整数年龄;
公共无效设置(@Min(0)@Max(100)整数年龄){
这个。年龄=年龄;
}
}

当我给出age=101时,它是有效的,似乎验证不起作用。

似乎需要使用验证程序来检查您的类是否有效

如果您正在创建
UserDTO
的对象

UserDTO user = new UserDTO("My Name", 101);
 
然后执行以下操作

Validator validator = Validation.buildDefaultValidatorFactory.getValidator();
Set<ConstraintViolation<SomeEntity>> errors = validator.validate(user);

谢谢,但我正在寻找使用javax.validation注释的解决方案
if(CollectionUtils.isNotEmpty(errors)){
  throw new ConstraintViolationException(errors);
}