Я нашел много тем для этого, но все решения пошли в неправильном направлении в моих глазах.
Итак ... Как мне использовать отображение MapStruct для этого случая?
аннотация класс Person:
public abstract class Person implements Serializable{
private String name;
private String somethingToIgnore
//Getter and Setter
}
Обычный Mapper не работает:
@Mapper(componentModel = 'cdi')
public interface PersonMapper{
@Mapping(target = 'somethingToIgnore', ignore = 'true')
Person toPerson(PersonDTO source);
@InheritInverseConfiguration
PersonDTO toPersonDtO(Person source);
}
Мне не разрешено отображать абстрактный класс. Я должен использовать фабричный метод. Я пытался, но я просто понятия не имею, как должен выглядеть этот метод factoy ...
Моя попытка:
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper( PersonMapper.class );
Person toPerson(PersonDTO source);
PersonDTO toPersonDtO(Person source);
}
@Mapper
public abstract class PersonMapper {
public static final PersonMapper INSTANCE = Mappers.getMapper( PersonMapper.class );
Person toPerson(PersonDTO source);
PersonDTO toPersonDtO(Person source);
}
Что я пропускаю и делаю неправильно? Заранее спасибо.