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