通过Mapstruct将复杂的DTO映射到实体

问题描述 投票:0回答:1
如何使用 MapStruct 库有效地将包含嵌套对象集合的复杂 DTO 映射到 Spring Boot 中的实体?我可以映射简单的对象,但是如果我需要从集合中映射这个嵌套元素怎么办?

我正在使用 Kotlin 和 Springboot。

一些最佳实践?

spring-boot mapstruct mapper
1个回答
0
投票
您可以在映射器上使用装饰器,您可以通过 MapStruct 调用生成的映射函数并在装饰器中扩展结果。

示例:

  • 首先创建一个抽象类:

    @DecoratedWith(NameOfYourDecorator::class) abstract class NameOfYourMapperDecorated : YourMapper

    
    

  • 创建装饰器并将列表从 DTO 映射到实体列表:

    开放类 BatchMapperDecorator : BatchMapperDecolated() { // 注入你的映射器 私有 var mapperProperty: YourMapper = Mappers.getMapper(YourMapper::class.java)

    override fun mapMethod(source: DTO): YourEntity { val result = mapperProperty.mapMethod(source) result.collection = source.collection.map { … map logic … }.toList() return result }
    
    
© www.soinside.com 2019 - 2024. All rights reserved.