小编Sab*_*fir的帖子

具有相同类型的多个字段的从字符串到嵌套对象的映射结构

我有带有字段的实体类:

  1. 客户发件人;
  2. 客户收件人;

我有带字段的 DTO 类:

  1. 长发件人ID;
  2. 长收件人 ID;

如果我喜欢这样:

@Mappings({ @Mapping(source = "senderId", target = "sender.id"), @Mapping(source = "recipientId", target = "recipient.id") })
Run Code Online (Sandbox Code Playgroud)

Mapstruct 将生成如下代码:

public Entity toEntity(DTO) {
        //...
        entity.setSender( dtoToClient( dto ) );
        entity.setRecipient( dtoToClient( dto ) );
        //...

    protected Client dtoToClient(Dto dto) {
        Client client = new Client();
        client.setId( dto.getRecipientId() ); // mapstruct takes recipient id for sender and recipient
        return client;
    }
}
Run Code Online (Sandbox Code Playgroud)

Mapstruct 为发件人和收件人而不是收件人 id 使用收件人 id 来创建客户端收件人和发件人 id 来创建客户端发件人。

所以我发现的更好的方法是使用就我所见并不那么优雅的表达式:

@Mappings({
      @Mapping(target = …
Run Code Online (Sandbox Code Playgroud)

java mapstruct

1
推荐指数
1
解决办法
4817
查看次数

标签 统计

java ×1

mapstruct ×1