I have 2 entities:
Entity 1:
public class Master {
private int id;
private Set<SubMaster> subMasters= new HashSet<SubMaster>(0);
}
public class SubMaster{
private int subId;
private String subName;
}
Entity 2:
public class MasterDTO {
private int id;
private Set<SubMaster> subMasters= new HashSet<SubMaster>(0);
}
public class SubMasterDTO{
private int subId;
private String subName;
}
I am using MapStruct Mapper to map values of POJO to another.
public interface MasterMapper{
MasterDTO toDto(Master entity);
}
I am able to successfully map Master
to MasterDTO
. But, the nested collection of SubMaster
in Master
is not getting mapped to its counterpart in MasterDTO
.
Could anyone help me in right direction?
This example in Mapstruct's Github repo is an exact showcase for what you're trying to do.
TL;DR You'll need a separate mapper for the SubMaster
(let's call it SubMasterMapper
) class and then put a @Mapper(uses = { SubMasterMapper.class })
annotation on your MasterMapper
:
public interface SubMasterMapper {
SubMasterDTO toDto(SubMaster entity);
}
@Mapper(uses = { SubMasterMapper.class })
public interface MasterMapper {
MasterDTO toDto(Master entity);
}