下面是我的字段num1
,在精度点之后我总是只需要 2 位数字,所以我在合同中使用了minimum
和maximum
约束。
properties:
num1:
type: number
minimum: 10.01
maximum: 50.99
我useBeanValidation
在生成代码时启用了选项。因此,上面的 openapi 字段会num1
生成BigDecimal
java
如下所示的映射:
@Valid
@DecimalMin("10.01") @DecimalMax("50.99")
public BigDecimal getNum1() {
return num1;
}
有了这个,我期望10.45
是有效的并且10.451
是无效的。但是,10.451
被视为有效。我理解,逻辑上10.451
是有效的,因为它大于minimum
值。
我发现@Digits
提供了预期的行为,但我需要一些帮助来配置openapi-generator-maven-plugin (v 3.3.1)
使用@Digits
注释而不是@DecimalMin / @DecimalMax
注释。有人遇到过这种问题吗?
以下是我config options
的openapi-generator-maven-plugin
:
<configOptions>
<interfaceOnly>true</interfaceOnly>
<dateLibrary>java8-localdatetime</dateLibrary>
<sourceFolder>openapi</sourceFolder>
<useBeanValidation>true</useBeanValidation>
<performBeanValidation>true</performBeanValidation>
<bigDecimalAsString>true</bigDecimalAsString>
</configOptions>