mapstruct三层嵌套转换

DTO

public class TradeDTO {
	private String tradeId;
  	private List<OrderDTO> orders;
}

public class OrderDTO {
  	private String orderId;
  	private String pickingId;
  	private String warehouse;
}

Entity

public class Trade {
	private String tradeId;
  	private List<Order> orders;
}

public class Order {
  	private String orderId;
  	private Picking picking;
}

public class Picking {
  	private String pickingId;
  	private String warehouse;
}

说明:Entity 的 Order 和 Picking 存在一对一的关系,但是在传输层,合并为一个 OrderDTO 对象,需要实现 DTO 向 Entity 的转换,mapstruct 部分代码如下:

public interface Converter {
    /** 转换入口函数 */
    Trade toEntity(TradeDTO dto);
		
    /**
     * 这里自定义的函数接口, 目的是把 OrderDTO 转换为 一对一的 Order 和 Picking
     * 函数名的格式为: 传入类型 + To + 返回类型 的小驼峰格式
     */
    @Mapping(target = "picking.", source = ".")
    Order orderDTOToOrder(OrderDTO orderDTO);
  
    /** Entity 转 DTO 跟上面的反向操作就可以 */
    TradeDTO toDto(Trade trade);

    @Mapping(target = ".", source = "picking.")
    OrderDTO orderToOrderDTO(Order order);

}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值