У меня есть иерархия классов 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Наследование Lombok @SuperBuilder с дженериками всегда показывает «захват?»
Anonymous » » в форуме JAVA - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-