我有车:
还有CarDTO:
在我的服务类中,我传递了附加参数“所有者”,并且我需要转换列表。
是否可以将“所有者”添加到Mapper?
如果是,那么我想它应该与此类似(不起作用)。
@Mapper
public interface CarMapper {
@Mapping(target = "owner", source = "owner")
List<Car> mapCars(List<CarDTO> cars, String owner);
}
Run Code Online (Sandbox Code Playgroud)
正如答案中所述,您可以使用@Context.
首先添加单个对象映射方法:
@Maping(target = "owner", source = "owner")
Car mapCar(CarDTO car, String owner);
Run Code Online (Sandbox Code Playgroud)
然后定义一个用于映射对象列表的方法@Context:
List<Car> mapCars(List<CarDTO> cars, @Context String owner);
Run Code Online (Sandbox Code Playgroud)
由于
@Context参数并不打算用作源参数,因此应添加代理方法以将 MapStruct 指向正确的单个对象映射方法以使其正常工作。
最后添加代理方法:
default Car mapContext(CarDTO car, @Context String owner) {
return mapCar(car, owner);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8630 次 |
| 最近记录: |