You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Validation如何配置以排除0、仅允许大于0的小数值?

Spring Validation 大于0数值校验配置方案

你的需求是校验数值严格大于0、不允许等于0,同时放行所有正小数,@Min注解无法满足的核心原因是@Min的阈值为long类型整数,且默认包含阈值本身,没有办法设置「大于0不包含0」的规则,解决方案如下:

方案:使用@DecimalMin注解

@DecimalMin是Bean Validation规范内置的注解,支持小数阈值配置,还可以通过inclusive参数控制是否包含阈值本身:

  • 把原有@Min注解替换为@DecimalMin,设置value = "0"、inclusive = false即可实现严格大于0的校验规则。

配置后的代码示例

@NotNull(message = "distance should not be empty")
@DecimalMin(value = "0", inclusive = false, message = "distance value should be above 0.")
private Double distance;

参数说明

  • value:填写阈值的字符串形式,支持小数格式
  • inclusive:布尔值,为false时表示校验规则为大于阈值,为true时表示大于等于阈值

该注解同时兼容Double、Float、BigDecimal等所有数值类型的字段,0.1、0.001这类正小数都可以正常通过校验,0会被正常拦截。


内容的提问来源于stack exchange,提问作者diaop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:54:04