ModelMapper с объектами за интерфейсом

У меня есть типы Entity и DTO оба за тем же интерфейсом, например:

public class CompanyDto implements Company {
    private String test;
    List<Project> projects;
}

public class CompanyEntity implements Company {
    private String test;
    private List<Project> projects;
}

public interface Company {
    String getTest();
    List<Project> getProjects();
}

public interface Project {
    String getFoo();
}

Когда я просто использую способ конвертации по умолчанию, он не конвертирует Список проектов. Поскольку они находятся за интерфейсом, это работает, когда я не помещаю их за интерфейс.

Поэтому я подумал, что мне нужно создать собственный конвертер, например так:

    Converter<List<CompanyEntity>, List<CompanyDto>> converter = new Converter<List<CompanyEntity>, List<CompanyDto>>() {
        public List<CompanyDto> convert(MappingContext<List<CompanyEntity>, List<CompanyDto>> context) {
// CONVERT
        }
    };

Но я застрял здесь, потому что назначение всегда нулевое в контексте. Нет ли другого способа просто указать CompanyEntity для CompanyDto один раз, чтобы, даже когда они находятся в списке, он просто работал?

0 ответов

Другие вопросы по тегам