为什么在服务方法参数中使用@Valid注释时不起作用,但对控制器方法有效?

我有这个UserDto类,我想放在@Valid

@Getter @Setter
public class UserDto{

  @NotEmpty(message = "Name cannot be empty")
  private String name;

  @NotNull(message = "Provide a valid age")
  private Integer age;

}

我有一些不能在控制器方法上进行验证的要求,但是我需要在服务方法上进行验证。

@PostMapping(value = "/user")
public void create(@RequestBody UserDto user){
  userService.create(user);
}

public void create(@Valid UserDto user){
  System.out.println(user);
}

但这不起作用。而且,如果我将@Valid放在控制器方法上,则会收到预期的验证错误。

为什么呢?序列化/反序列化是否与价位有关?

zjfshy 回答:为什么在服务方法参数中使用@Valid注释时不起作用,但对控制器方法有效?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2918130.html

大家都在问