![](/img/trans.png)
[英]Mapstruct mapping query :mapping an attribute from dto to entity but not an attibute on dto
[英]Mapping DTO using Mapstruct
我是Mapstruct
,在特定用例中遇到問題
所以,如果我的源屬性有 hotmail.com 我的目標屬性應該收到“個人”,如果我的來源有 facebook.com 我的目標應該收到“公司”。
我試圖使用表達,但無法繞過它。 我該怎么做?
@Mapping(source = "user.email", target = "emailType")
NewDTO myMapperMethod(MyRequest req);
您可以使用qualifiedByName
和default
接口方法來限定和定義給定屬性的合適映射方法:
@Mapper(componentModel = "spring")
public interface RequestMapper {
@Mapping(source = "user.email", target = "emailType", qualifiedByName = "EmailToType")
NewDTO myMapperMethod(MyRequest req);
@Named("EmailToType")
default String emailTypeResolver(String email) {
if ("hotmail.com".equals(email)) {
return "personal";
} else if ("facebook.com".equals(email)) {
return "corporate";
} else {
return "unknown";
}
}
}
這不是 MapStruct 應該為您解決的問題。 它正在根據內容做出運行時決策。 通常是業務問題,而不是映射問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.