Skip to content

@SubclassMapping not working with @BeanMapping.ignoreUnmappedSourceProperties #3609

@pemu69

Description

@pemu69

Expected behavior

@BeanMapping.ignoreUnmappedSourceProperties should not be ignored.

Actual behavior

I want to use @SubclassMapping and @BeanMapping.ignoreUnmappedSourceProperties on the same mapping method. The @BeanMapping.ignoreUnmappedSourceProperties seems to be ignored. If I remove the @SubclassMapping annotations the error (Unmapped source property: "id") disappears.

Steps to reproduce the problem

class Vehicle {
    public int price;
}

class Car extends Vehicle {
    public int seats;
}

class Truck extends Vehicle {
    public int capacity;
}

class VehicleDto {
    public int id;
    public int price;
}

class CarDto extends VehicleDto {
    public int seats;
}

class TruckDto extends VehicleDto {
    public int capacity;
}

@MapperConfig(
    unmappedSourcePolicy = ReportingPolicy.ERROR,
    unmappedTargetPolicy = ReportingPolicy.ERROR,
    subclassExhaustiveStrategy = SubclassExhaustiveStrategy.RUNTIME_EXCEPTION
)
class Config {
}
@Mapper(config = Config.class)
public abstract class VehicleMapper {

    @SubclassMapping(source = CarDto.class, target = Car.class)
    @SubclassMapping(source = TruckDto.class, target = Truck.class)
    @BeanMapping(ignoreUnmappedSourceProperties = { "id" })
    public abstract Vehicle toVehicle(VehicleDto vehicle);

    @InheritInverseConfiguration
    @Mapping(target = "id", ignore = true)
    public abstract VehicleDto toVehicleDto(Vehicle vehicle);
}

MapStruct Version

1.5.5

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions