mapstruct 集合转换指定方法
接口
/**
* @IterableMapping(qualifiedByName = "test") : 指定调用@Named("test")标记的方法作为集合内元素转换方法
*/
@Named("test2")
@IterableMapping(qualifiedByName = "test")
List<ClusterInfoDTO> test2(List<ClusterInfo> clusterInfoSet);
/**
* 该方法只想复制id属性
* @BeanMapping(ignoreByDefault = true) : 不自动映射字段,所有需要映射的字段均需要通过@Mapping来指定
*/
@Named("test")
@BeanMapping(ignoreByDefault = true)
@Mapping(target = "id", source = "id")
ClusterInfoDTO test1(ClusterInfo clusterInfoSet);
自动生成的实现
@Override
public List<ClusterInfoDTO> test2(List<ClusterInfo> clusterInfoSet) {
if ( clusterInfoSet == null ) {
return null;
}
List<ClusterInfoDTO> list = new ArrayList<ClusterInfoDTO>( clusterInfoSet.size() );
for ( ClusterInfo clusterInfo : clusterInfoSet ) {
list.add( test1( clusterInfo ) );
}
return list;
}
@Override
public ClusterInfoDTO test1(ClusterInfo clusterInfoSet) {
if ( clusterInfoSet == null ) {
return null;
}
ClusterInfoDTO clusterInfoDTO = new ClusterInfoDTO();
clusterInfoDTO.setId( clusterInfoSet.getId() );
return clusterInfoDTO;
}