MapStruct Java:要列出的属性
很快,我想将此代码移动到mapstruct映射器中:MapStruct Java:要列出的属性,java,mapstruct,Java,Mapstruct,很快,我想将此代码移动到mapstruct映射器中: List proviciences=resultsetype.getResults().getResult().stream() .map(resultType->ResultTypeToProvinciaMapper.INSTANCE.resultTypeToProvincia(resultType)) .collect(Collectors.toList()); 我想要: List provinces=ResultTypeToProvi
List proviciences=resultsetype.getResults().getResult().stream()
.map(resultType->ResultTypeToProvinciaMapper.INSTANCE.resultTypeToProvincia(resultType))
.collect(Collectors.toList());
我想要:
List provinces=ResultTypeToProvinciaMapper.INSTANCE.getList(resultSet);
细节
我的源类:
公共类resultsetype{
受保护的SearchRequestType请求;
受保护的结果;
受保护的长结果帐户;
保护长计数;
保护长startIndex;
受保护的长页面大小;
受保护的ResultSetType.Errors;
//接球手和接球手
}
其中,结果
为:
公共静态类结果{
保护列表结果;
//接球手和接球手
}
和ResultType
:
公共类结果类型{
受保护的字符串id;
保护字符串描述;
//接球手和接球手
}
My服务
类正在从My存储库
获取一个ResultSetType
对象:
@服务
@所需参数构造函数
公共类ServeiTerritorialServiceImpl实现ServeiTerritorialService{
私人终审法院判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书判决书;
/**
*{@inheritardoc}
*/
@凌驾
public void getPaisos(){
resultsetype resultsetype=this.serveiTerritorialClientRepository.getOid(“2.16.724.4.400”);
//这里我需要将resultSetType映射到一个列表。。。
}
}
我需要将resultsetype
映射到List
因此,我需要将resultsetype.results.result
映射到List
首先,我创建了一个mapper
,以便将ResultType
映射到Provincia
:
@Mapper
公共接口结果类型省级映射器{
ResultTypeTopProvinciaMapper实例=Mappers.getMapper(ResultTypeTopProvinciaMapper.class);
@映射(source=“id”,target=“code”)
@映射(source=“description”,target=“name”)
Provincia结果类型到Provincia(结果类型结果类型);
}
但是,我不太清楚如何从resultsetype.results.result
到List
有什么想法吗?使用MapStruct,您可以定义不同iterable之间的映射。但是,您可以从嵌套列表映射到方法中的顶级列表(如果它是包装的,则可以) 在任何情况下,我建议采取以下措施:
@Mapper
public interface ResultTypeToProvinciaMapper {
ResultTypeToProvinciaMapper INSTANCE = Mappers.getMapper(ResultTypeToProvinciaMapper.class);
default List<Provincia> resultSetToListOfProvincia(ResultSetType resultSetType) {
if (resultSetType == null) {
return null;
}
Results results = resultSetType.getResults();
if (results == null) {
return null;
}
return resultTypesToProvincias(results.getResult());
}
List<Provincia> resultTypesToProvincias(List<ResultType> resultTypes);
@Mapping(source = "id", target = "code")
@Mapping(source = "description", target = "name")
Provincia resultTypeToProvincia(ResultType resultType);
}
@Mapper
公共接口结果类型省级映射器{
ResultTypeTopProvinciaMapper实例=Mappers.getMapper(ResultTypeTopProvinciaMapper.class);
默认列表resultSetToListOfProvincia(ResultSetType ResultSetType){
if(resultsetype==null){
返回null;
}
Results=resultsetype.getResults();
如果(结果==null){
返回null;
}
返回resultTypesToProvincias(results.getResult());
}
列表结果类型省份(列表结果类型);
@映射(source=“id”,target=“code”)
@映射(source=“description”,target=“name”)
Provincia结果类型到Provincia(结果类型结果类型);
}