【发布时间】:2019-04-06 23:36:49
【问题描述】:
我的应用程序中有一个以下 java bean
public class Status{
private String statusType;
private String status;
private String statusCode;
//getters and setters
}
public class Associate{
private String name;
private String id;
private List<Status> statuses;
//getters & setters
}
Status.statusTypes 的可能值是 {"O", "P", "R", "S", "A"}。现在我需要将状态映射为关联映射器的一部分,但如果 statusType 与 {"O", "A", "P"} 中的任何一个匹配,则映射应该只返回状态和状态类型?
到目前为止,我正在像下面这样在映射器中执行自定义默认方法
public AssociateMapper{
Predicate<Status> status = (sts) -> null != sts &&null!=sts.getStatusType
&& "O|A|P".contains(sts.getStatusType());
@Mappings({
//some mappings
@Mapping(target = "statuses", expression = "java(associate.getStatuses().stream().filter(status).collect(Collectors.toList()))" )
})
Associate mapAssociate(Associate associate);
}
有没有比使用 mapStruct 配置本身更优雅的方法?
【问题讨论】:
-
你尝试了什么,代码在哪里,什么没有成功?
-
用我的足迹更新了问题