openapi-generator icon indicating copy to clipboard operation
openapi-generator copied to clipboard

[BUG][SPRING] Lombok Builder doesn't preserve default values

Open levitin opened this issue 1 year ago • 1 comments

Bug Report Checklist

  • [x] Have you tested with the latest master to confirm the issue still exists?
  • [x] Have you searched for related issues/PRs?
  • [x] What's the actual output vs expected output?
Description

Adding Lombok Builder, as explained in this comment is working fine. However, there's a problem with default values. When utilizing Lombok Builder, the default values specified in the model classes aren't retained; instead, they're being set to null.

This problem can be resolved by leveraging Lombok's @Builder.Default annotation, which allows us to specify default values for fields within the builder pattern. More details about this annotation can be found here.

Related issues/PRs
  • https://github.com/OpenAPITools/openapi-generator/issues/324
Input
openapi: "3.0.3"
...
components:
  schemas:
    MyObject:
      type: object
      properties:
        propertyWithDefaultValue:
          type: integer
          format: int32
          default: 20
        simpleProperty:
          type: integer
          format: int32
...
<configuration>
    ...
   <configOptions>
      ...
      <additionalModelTypeAnnotations>@lombok.Builder</additionalModelTypeAnnotations>
      ...
   </configOptions>
   ...
</configuration>
Current output
@lombok.Builder
public class MyObject {
  ...

  private Integer propertyWithDefaultValue = 20;

  private Integer simpleProperty;

  ...
}
Expected output
@lombok.Builder
public class MyObject {
  ...

+ @lombok.Builder.Default
  private Integer propertyWithDefaultValue = 20;

  private Integer simpleProperty;

  ...
}

levitin avatar May 16 '24 15:05 levitin

Any progress for this issue?

Degooya avatar Jun 25 '24 09:06 Degooya