Предупреждение о несопоставленном целевом свойстве, когда имя свойства начинается с «set» - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь реализовать сопоставление между сущностью и DTO, используя MapStruct. Одним из свойств, которые должны быть сопоставлены, является "урегулирование даты". Он имеет то же имя в классе DTO, и отображение работает, но я получаю следующее предупреждение во время компиляции:

/path/to/project/SomeDataMapper.java:15: warning: Unmapped target property: "tlementDate".
    SomeData toEntity(SomeDataDTO someDataDTO);

Есть ли способ заставить MapStruct иметь дело с таким странно названным свойством без предупреждений?

Я пытался использовать аннотацию @Mapping для явного указания имен, но это не помогло:

@Mapping(target = "settlementDate", source = "settlementDate")
SomeData toEntity(SomeDataDTO someDataDTO);

Ответы [ 2 ]

1 голос
/ 27 апреля 2019

Я бы сказал, что это ошибка, название не так уж странно ?.Можете ли вы создать проблему в трекере ошибок (если вы этого еще не сделали)

В настоящее время вы можете попробовать и "использовать" неправильное отображение свойств.Что-то вроде:

@Mapping(target = "tlementDate", source = "settlementDate")
SomeData toEntity(SomeDataDTO someDataDTO)
0 голосов
/ 26 апреля 2019

Ваша проблема исходит от имени "урегулирование_даты", по-видимому, начиная с поколения она рассматривается как установщик, а не переменная. Поэтому я предлагаю вам:

 @Mapping(target="settlementDate",source="settlementDate", qualifiedByName="methodName")
 SomeData toEntity(SomeDataDTO someDataDTO);

 @Named("methodName")
 default ... methodName2(... settlementDate){
     //your transformation to get settlementDate of SomeData from settlementDate from SomDataDTO
 }

Я не пробовал с именем, начинающимся с "set", иначе оно работает

...