Lombok @SuperBuilder einen meiner Feldnamen ändern?Java

Java-Forum
Guest
 Lombok @SuperBuilder einen meiner Feldnamen ändern?

Post by Guest »

Ich habe eine Hierarchie von DTO-Klassen, die von Lombok @SuperBuilder erstellt wurden. Bei der Verwendung wird eines der Felder auf mysteriöse Weise umbenannt. Warum ist das so und was kann ich tun, um den ursprünglichen Namen beizubehalten? Ist das ein Lombok-Problem oder eine Lombok-Funktion – aber ich kann keine Hinweise in den Lombok-Dokumenten finden?

Code: Select all

@SuperBuilder
@Getter
@NoArgsConstructor
public class ExpenseDto {
@NonNull
@Size(max = 30)
protected String recipient;

@NonNull
@Size(max = 30)
protected String purpose;

// ...

protected boolean isInvoiced;  // this somehow is changed
}

Code: Select all

@Data
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
public class ExpenseEntityDto extends ExpenseDto {
@Size(max = 16)
long expenseId;

@Size(max = 16)
@NonNull
protected String accountNo;

// ...
}

Ich verwende es so:

Code: Select all

public ExpenseEntityDto domainToEntityDto(Expense domain) {
return ExpenseEntityDto.builder()
.expenseId(domain.getExpenseId())
.accountNo(domain.getAccountNo())
.recipient(domain.getRecipient())
.purpose(domain.getPurpose())
.isInvoiced(domain.isInvoiced())  // produces a field 'invoiced' !?
.build();
}
Im Flug sieht der DTO-JSON so aus:

Code: Select all

{
"recipient": "Mobsters Inc.",
"purpose": "protection services rendered",
"expenseId": 1,
"accountNo": "1234",
"invoiced": false     // Huh !? expected 'isInvoiced' instead
}
Noch besser ist, dass die Openapi-Spezifikation (generiert aus der Smallrye-Openapi-Erweiterung in Quarkus) BEIDE Versionen im Schema zeigt (dasselbe in der Swagger-Benutzeroberfläche):

Code: Select all

ExpenseEntityDto:
type: object
properties:
recipient:
maxLength: 30
type: string
purpose:
maxLength: 30
type: string
isInvoiced:
type: boolean
invoiced:
type: boolean
expenseId:
format: int64
type: integer
accountNo:
maxLength: 16
type: string

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post