首页 > 解决方案 > MapStruct,地图继承

问题描述

我有 2 个实体Vehicle,一个是接口VehicleDto一个是

Vehicle有 2个子类型CarTruck。他们三个都有一个字段name

VehicleDto有 2 个字段 CarTruck,其中只有一个可能有值。

如何将子类型映射CarTruckVehicleDto,以便VehicleDto用子类型的值填充相应的字段name

目前我有这个:

@Mapping(source = "name", target = "Car")
@Mapping(source = "name", target = "Truck")
VehicleDto mapToVehicle(Vehicle vehicle);

但这显然行不通,因为现在CarTruck字段VehicleDto都已填写。

我也尝试过这样的事情

@Mapping(source = "name", target = "Car")
VehicleDto mapToVehicle(Car car);
@Mapping(source = "name", target = "Truck")
VehicleDto mapToVehicle(Truck truck);

但这也不能正常工作。

实现此行为的好方法是什么?MapStruct 的参考指南对我来说不是很清楚。

标签: javainheritancemappingmapstruct

解决方案


推荐阅读