如何将String类型的源对象映射到MapStruct中的目标UUID?

问题描述 投票:0回答:1

这是一个代码片段:

来源:

public class BuyerInfo {
   String membershipID;
}

目标:

public class BuyerInfo {
   UUID membershipID;
}

控制台错误:

无法将属性“StringbuyerInfo.primaryMembershipID”映射到“UUIDbuyerInfo.id”。考虑声明/实现一个映射方法:“UUID map(String value)”。

java mapstruct mapper
1个回答
0
投票

我尝试过这个,它对我有用。

@Mapper(componentModel = "spring")
public interface SourceToTargetMapper {

    SourceToTargetMapper INSTANCE = Mappers.getMapper( SourceToTargetMapper.class );

    @Mapping(target="buyerInfo.id" source="sourceOrder.id", qualifiedByName = "mapToUUID")
    Order sourceOrderList(SourceOrder.Order sourceOrder);

    @Named("mapToUUID")
    default UUID mapToBuyerInfoId(BuyerMetaData buyerInfo){
        return UUID.fromString(buyerInfo.getPrimaryMembershipID());
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.