如何使用MapStruct映射嵌套集合? [英] How to map nested collections using MapStruct?
问题描述
我有2个实体:
实体1:
公开课硕士{
private int id;
私人Set< SubMaster> subMasters =新的HashSet< SubMaster>(0);
}
公共类SubMaster {
private int subId;
private String subName;
}
实体2:
公共类MasterDTO {
private int id;
私人Set< SubMaster> subMasters =新的HashSet< SubMaster>(0);
}
公共类SubMasterDTO {
private int subId;
private String subName;
}
我正在使用MapStruct Mapper将POJO的值映射到另一个。
公共接口MasterMapper {
MasterDTO toDto(主实体);
}
我能够成功映射 Master
到 MasterDTO
。但是, Master
中的 SubMaster
的嵌套集合不会映射到 MasterDTO中的对应集合
。
有人可以在正确的方向帮助我吗?
此示例在Mapstruct的Github中
TL; DR对于 SubMaster,您将需要一个单独的映射器。
TL code>(让我们将其称为 SubMasterMapper
)类,然后放入 @Mapper(uses = {SubMasterMapper.class})
MasterMapper 上的$ c>批注:
公共接口SubMasterMapper {
SubMasterDTO到Dto(SubMaster实体);
}
@Mapper(uses = {SubMasterMapper.class})
公共接口MasterMapper {
MasterDTO toDto(Master实体);
}
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);
}
这篇关于如何使用MapStruct映射嵌套集合?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!