0
我想申请一个装饰使用专用@AfterMapping后单个项目转换的DTO和另一个专用的@AfterMapping处理其集合转换的味道,但不是两个。MapStruct批量转换与@aftermapping
public abstract CatUI convert(Cat cat);
public abstract List<CatUI> convert(List<Cat> cats);
@AfterMapping
public void populateCatName(Cat cat, @MappingTarget CatUI catUI) {
String name = _someRemoteService.getCatName(catUI.getId());
catUI.setName(name);
}
@AfterMapping
public void populateCatNames(List<Cat> cats, @MappingTarget List<CatUI> catUIs) {
Map<Integer,String> idToNameMap = _someRemoteService.getCatNames(catUIs.stream().map((c) -> c.getId()).collect(Collectors.toList());
catUIs.forEach((c) -> c.setName(idToNameMap(c.getId())));
}
我不想在处理List转换时调用populateCatName,因此会重复我的装饰。
无论如何要做到这一点?