IvanNickSim
IvanNickSim

Reputation: 154

Mapstruct ignore method generation

Is there a way to ignore the generation of the mapper for the 3rd method in this code sample using mapstruct?

@Mapper(unmappedSourcePolicy = ReportingPolicy.IGNORE, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface EmployeeMapper {

   EmployeeMapper MAPPER = Mappers.getMapper( EmployeeMapper.class );

   @Mapping(source = "id", target = "id")
   @Mapping(source = "firstName", target = "firstname")
   @Mapping(source = "surname", target = "surname")
   @Mapping(source = "employmentses", target = "employmentDTOList")
   EmployeeDTO employee2dto(Employees employees);

   @Mapping(source = "id", target = "id")
   @Mapping(source = "firstName", target = "firstname")
   @Mapping(source = "surname", target = "surname")
   @Mapping(target = "employmentDTOList", ignore = true)
   EmployeeDTO domainView2dto(EmployeeView employeeView);

   //to be ignored by Mapstruct
   EmployeePageDTO domainPage2dto(Page<EmployeeView> employeeViewPage);

}

Upvotes: 3

Views: 4782

Answers (1)

Gaetano Piazzolla
Gaetano Piazzolla

Reputation: 1547

You can simply define a default method inside the interface as stated here:

@Mapper(unmappedSourcePolicy = ReportingPolicy.IGNORE, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface EmployeeMapper {

   EmployeeMapper MAPPER = Mappers.getMapper( EmployeeMapper.class );

   //.....

   //to be ignored by Mapstruct
   default EmployeePageDTO domainPage2dto(Page<EmployeeView> employeeViewPage) {
       //.... insert body here
   }
}

Upvotes: 4

Related Questions