如何检测请求中缺少的原语,而不是在springboot中将实际值默认为0?

如何检测请求中缺少的原语,而不是在springboot中将实际值默认为0?,spring,spring-boot,Spring,Spring Boot,我有一个rest控制器,它接收封装在DTO中的Json请求。在那个数据里我有这个字段 @NotNull(message = "value is mandatory.") private double value; 问题是,当我发送一个缺少此值的请求时,我不会得到验证错误,因为该值可能默认为0 如何确保在有效负载中实际缺少此值时通知调用者,而不是在spring中自动默认为0?我有一个建议,您可以再添加一个注释,以帮助您避免像这样使用零 @Min(1) @NotNull(message

我有一个rest控制器,它接收封装在DTO中的Json请求。在那个数据里我有这个字段

@NotNull(message = "value is mandatory.")
private double value;
问题是,当我发送一个缺少此值的请求时,我不会得到验证错误,因为该值可能默认为0


如何确保在有效负载中实际缺少此值时通知调用者,而不是在spring中自动默认为0?

我有一个建议,您可以再添加一个注释,以帮助您避免像这样使用零

   @Min(1)
   @NotNull(message = "value is mandatory.")
   private double value;

现在它将取最小值1,所以它可能会工作

使用@M.Deinum的建议,并且工作正常。包括避免使用原语

@NotNull(message = "value is mandatory.")
private Double value;

double的包装器不是一个选项吗<代码>双倍?是的。我在原语上还有一堆其他字段
@NotNull
,因为它有一个默认值,所以没有用。另外,缺少一个参数的事实是另一个
@NotNUll
属性。如果您确实想使用此功能,请使用
Double
而不是
Double
。谢谢@M.Deinum。这样行不行,因为用户可能想使用0或-1,我只想让用户知道请求中需要该值。目前,spring默认为0,如果缺失,没有错误。如果这一点和您的搜索没有得到结果,那么我建议在插入记录时验证该值。如果该值不存在,则显示错误消息。