Lombok @SuperBuilder меняет одно из названий моих полей?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Lombok @SuperBuilder меняет одно из названий моих полей?

Сообщение Anonymous »

У меня есть иерархия классов DTO, созданная lombok @SuperBuilder. При его использовании одно из полей загадочным образом переименовывается. Почему это так и что я могу сделать, чтобы сохранить исходное имя? Это проблема или особенность Ломбок, но я не могу найти никаких подсказок в документации Ломбок?
@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
}


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

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

// ...
}


Я использую это так:
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();
}

В реальном времени DTO JSON выглядит следующим образом:
{
"recipient": "Mobsters Inc.",
"purpose": "protection services rendered",
"expenseId": 1,
"accountNo": "1234",
"invoiced": false // Huh !? expected 'isInvoiced' instead
}

Более того, спецификация openapi (созданная на основе расширения smallrye-openapi в Quarkus) показывает ОБЕИ версии в схеме (то же самое в Swagger UI):
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


Подробнее здесь: https://stackoverflow.com/questions/793 ... ield-names
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Lombok @SuperBuilder меняет одно из названий моих полей?
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • При использовании Lombok 1.18.32 с Java 17 выдается ошибка: типы Lombok.Setter и Lombok.Setter недоступны.
    Anonymous » » в форуме JAVA
    0 Ответы
    114 Просмотры
    Последнее сообщение Anonymous
  • Наследование Lombok @SuperBuilder с дженериками всегда показывает «захват?»
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Потоковая карта классов с помощью Lombok SuperBuilder
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Потоковая карта классов с помощью Lombok SuperBuilder
    Anonymous » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»