下面是我的字段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>