Я пытаюсь построить DTO, разделенные на sub-DTO, получая информацию от одного и того же большого объекта. Для этого я разделил логику отображения на несколько субмапперов (по одному на суб-DTO).
Когда субмаппер использует тот же тип ввода, что и родительский, он каким-то образом игнорируется в генерации MapperImpl. Но когда тип ввода отличается, он работает как шарм.
public class MainDTO {
Integer id;
SubDTO1 subDTO1;
SubDTO2 subDTO2;
}
@Mapper(uses = { SubMapper1.class, SubMapper2.class })
public interface MainMapper {
MainDTO toDto(Entity entity);
}
@Mapper
public interface SubMapper1 {
SubDTO1 toDto(Entity entity); // KO
}
@Mapper
public interface SubMapper2 {
SubDTO2 toDto(OtherEntity entity); // OK
}
Сгенерированный MapperImpl:
@Component
public class MainMapperImpl implements MainMapper {
@Autowired
private SubMapper2 submapper2;
// No Submapper1 !
....
}
Есть идеи, как я могу это исправить, не помещая всю логику отображения в MainDTO?
Спасибо за помощь.