2

下面是我的字段num1,在精度点之后我总是只需要 2 位数字,所以我在合同中使用了minimummaximum约束。

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 optionsopenapi-generator-maven-plugin

<configOptions>
  <interfaceOnly>true</interfaceOnly>
  <dateLibrary>java8-localdatetime</dateLibrary>
  <sourceFolder>openapi</sourceFolder>
  <useBeanValidation>true</useBeanValidation>
  <performBeanValidation>true</performBeanValidation>
  <bigDecimalAsString>true</bigDecimalAsString>
</configOptions>
4

0 回答 0