如果输入的值大于 int 的范围,我如何验证 Request bean 中的整数字段?

How do I validate an integer field in a Request bean, if the entered value is greater than the range of an int?

为了验证请求 bean 中的整数字段,我使用了 @range (min=0,max=99999999,message="invalid") and @digits(). 他们抛出错误

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Numeric value (1111118493411) out of range of int;
  1. 我的需要是验证一个整数字段并在请求层本身抛出验证错误。
  2. 我的数据库有一个大小为 10 的 int4 类型的字段。
  3. 我不希望用户传递大于 10 位的值。

我如何在我的请求层本身处理这个以限制用户输入超过 10 位数字

@JsonProperty(value = "qty", required = true)
@NotNull
@Range(min=0, max=999999999 , message = "invalid")
private Integer qty;

如果用户输入的数字超过 10 位,我希望抛出一个错误,说明无效。

最大 int 值为 java 中的 2,147,483,647。你可以在这个answer中看到。您的值大于 max int 值。所以你应该改变数量的 class 字段类型(例如 long)。