Skip to content

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

@levitin

Description

@levitin

Bug Report Checklist

  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • 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
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;

  ...
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions