У меня есть иерархия классов 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
Lombok @SuperBuilder меняет одно из названий моих полей? ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1735574818
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79317713/lombok-superbuilder-changing-one-of-my-field-names[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия