logo
down
shadow

Nested list mapping using MapStruct


Nested list mapping using MapStruct

By : Jordan Effinger
Date : November 22 2020, 03:01 PM
it helps some times First of all is Source contains always one course why not make it a Course element instead of a List?
If you do that the mapping would be much simpler. With your current setup it is a bit more complex.
code :
@Mapper
public interface MyMapper {

    @Mapping(target = "targetId", source = "sourceId")
    @Mapping(target = "subjectName", source = "courses")
    @Mapping(target = "members", source = "courses")
    Target map(Source source);

    default String subjectName(List<Course> courses) {
        if (courses == null || courses.isEmpty()) {
            return null;
        }
        return courses.get(0).getCourseName();
    }

    default List<Member> toMembersFromCourses(List<Course> courses) {
        if (courses == null || courses.isEmpty()) {
            return null;
        }
        return toMembers(courses.get(0).getStudents());
    }

    List<Member> toMembers(List<Student> students);

    @Mapping(target = "memberName", source = "studentName")
    Member toMember(Student student);
}
@Mapper
public interface MyMapper {

    @Mapping(target = "targetId", source = "sourceId")
    @Mapping(target = "subjectName", source = "course.courseName")
    @Mapping(target = "members", source = "course.students")
    Target map(Source source);

    @Mapping(target = "memberName", source = "studentName")
    Member toMember(Student student);
}


Share : facebook icon twitter icon
Mapping nested object with mapstruct

Mapping nested object with mapstruct


By : Chenthil
Date : March 29 2020, 07:55 AM
around this issue Nesting on the target side as you are trying to use it is not supported yet. There's a feature request for this (issue #389), but we did not yet get to implementing this.
Nested Mapping in Mapstruct

Nested Mapping in Mapstruct


By : Shivani
Date : March 29 2020, 07:55 AM
hop of those help? So I suppose you have the same hierarchy of objects on the target side, e.g. a SongDTO, LibraryDTO and TrackDTO.
Then you'd have to declare a mapping method for each of those pairs of corresponding objects, configuring it via @Mapping as needed:
code :
public interface MyMapper {

    @Mapping(source="name", target="title")
    SongDTO songToDto(Song song);

    LibraryDTO libraryToDto(Library library);

    TrackDTO trackToDto(Track track);
}
Nested Mapping using MapStruct

Nested Mapping using MapStruct


By : bat21
Date : March 29 2020, 07:55 AM
will be helpful for those in need Currently MapStruct can pass source parameters to single methods. In order to achieve what you are looking for (without using nested target types you would need to use something like @AfterMapping. It can look like:
code :
@Mapper
public interface CustomerProfileMapper {
    CustomerProfile toCustomerProfile(CustomerProfileDO profileDO) ;  
    Customer   toCustomer(CustomerDO customerDO);
    Identifier toIdentifier(CustomerIdentifierDO identifierDO);


    default void afterMapping(@MappingTarget CustomerProfile profile, CustomerProfieDO profileDO) {
        Identifier identifier = profile.getCustomer().getIdentifier();
        identifier.setStatus(profileDO.setStatus());
        identifier.setType(profileDO.setCategory());
    }    
}
MapStruct: List mapping is not using single mapping when annotated by @Named

MapStruct: List mapping is not using single mapping when annotated by @Named


By : shweta doshi
Date : March 29 2020, 07:55 AM
hop of those help? You need to qualify the mapping method when using @Named (using @IterableMapping#qualifiedByName):
code :
@Mapper
@Named("RoleBaseMapper")
public interface RoleBaseMapper {

    @Mapping(target = "code", source = "name")
    @Named("mapToBase")
    RoleGuiBaseDto mapToBase(Role role);

    @IterableMapping(qualifiedByName = "mapToBase")
    @Named("MapListToBase")
    List<RoleGuiBaseDto> mapListToBase(List<Role> roles);
}
MapStruct mapping nested beans as is

MapStruct mapping nested beans as is


By : Oliver Sauter
Date : March 29 2020, 07:55 AM
may help you . I found it :)
the mapper class should use the nestedclass like this :
Related Posts Related Posts :
  • Is it possible to animate a ViewCell when it appears or disappears?
  • How to install cocoa pods
  • rxjs created observable timeout always errors
  • adding lines without overwriting existing
  • How to setup Microsoft LUIS to detect composed names (dash separated)
  • In Ektron, Load Last Active Location
  • In Cypress how to count a selection of items and get the length?
  • Openlayers rotation broken when using precompose to clip a layer
  • Using SendGrid package with C# "Web" as shown in examples, is undefined
  • Service Worker: files are updated on the server but old version showing in browser
  • Ignore empty form values on update using laravl5
  • Expect: How to get the exit code from spawned process
  • Using In clause in apache Camel
  • Pass qualifier to provider method
  • Disable retained MQTT messages in Rabbit MQ
  • How to escape mask rules in kendo maskedtextbox for angular2?
  • How to delete blank rows in spss modeler
  • modify content of http response via haproxy
  • PUT multiple related records in Data API request
  • Getting data (text, ...) what user says
  • Transforming a list of structs with parent IDs into a list of trees
  • Eloquent relationship returns null, but a similar one is fine
  • how can i find the exact tick in netlogo in which agents take an action?
  • await - catch error - UnhandledPromiseRejectionWarning
  • Understanding Fabric Daily Summary Email
  • How to pass string and file as input for form parameters in a POST method using Karate
  • Windows app: fatal error C1083: Cannot open include file: 'gdiplus.h': No such file or directory
  • I have a list and I want to print a range of it's content with range and for loop
  • Integration Testing with Kitchen CI
  • Can't seem to get the from <asp:Literal </asp:Literal> property in Web forms
  • Can't access faraday params on views
  • RQM testNG integration
  • How can I enable unit templates?
  • Displaying multiple colors on a single data bar
  • Loading aggregates on reacting to domain events
  • Integrating Azure Cognitive services with Robotic Process Automation
  • Autodesk Forge Design Automation quota
  • Why can i not login to the wso2 api store using the email address of a secondary user store account
  • order not working with sortWhitelist
  • config.site for vendor libs on Fedora x86_64
  • Getting a limit response from Loopback, when no authentication is provided
  • What is the effect of FeedOptions.EnableLowPrecisionOrderBy Property
  • Recordset Null Value not being detected in null check
  • How to connect to an arbitary database using FaaS?
  • SourceTree not working after Windows 10 Fall Creators Update
  • How to get all registered user from Openfire through http
  • Error "invalid parameter" when launching a converted app
  • Using react-sortable-hoc with react-virtualized Grid
  • Xamarin.Forms: How to set values in Style only on specific platform
  • ZSH avoid adding empty commands to history?
  • Grep regular expression - Pattern issue
  • Unable to connect via Java to a DSE graph
  • Check if attachment is up to date with current document revision in couchdb
  • Can I bind an argument value ahead of time when using redux-actions?
  • How to change a member field with Kotlin reflection?
  • Replaying merged streams individually
  • DevExpress GridColumn strange proportional sizing
  • Drools Decision table error : Error while creating KieBase
  • Kafka-Flink-Stream processing: Is there a way to reload input files into the variables being used in a streaming process
  • How to export and import nifi flow from one HDP to another HDP
  • shadow
    Privacy Policy - Terms - Contact Us © voile276.org