Search code examples
mapstruct

Mapstruct: map using literal parameters


Here my class:

public class QdCFPresenter {

    private Long id;
    private Long codi;
    private String name;

Is there any way to update a target object using a single literal parameter?

Something like that:

@Mapper
public interface QdCFMapper {

    public QdCFPresender mapTo(QdCFPresenter target, String name);

}

I'd like mapstruct generates something like:

public interface QdCFMapperImpl {

    public QdCFPresender mapTo(QdCFPresenter target, String name) {
        target.setName(name);
        return target;
    }

}

Any ideas?


Solution

  • MapStruct has the concept of update mappings using @MappingTarget.

    In your example you'll need to od something like:

    @Mapper
    public interface QdCFMapper {
    
        public QdCFPresender mapTo(@MappingTarget QdCFPresenter target, String name);
    
    }
    

    Then MapStruct will do its thing and generate what you need.