MapStruct:如何映射到现有目标?

问题描述 投票:0回答:1

我在服务中有一个更新实体的方法。它接受具有更新实体的数据的对象。 Dto 对象的字段少于实体,但字段具有相同的名称。

是否可以通过传递现有目标对象来使用 mapstruct 来完成该例行工作?

class Entity {
  id
  name
  date
  country
  by
  ... //hell of the fields
}
class UpdateEntity {
  name
  country
  ... //less but still a lot
}

class EntityService {
  update(UpdateEntity u) {
    Entity e = // get from storage
    mapstructMapper.mapFromTo(u, e)
  }
}
java mapstruct
1个回答
65
投票

是的,您需要做的就是使用

Mapper
方法定义
update
,例如:

import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;

@Mapper
public interface EntityMapper {
  void update(@MappingTarget Entity entity, UpdateEntity updateEntity);
}

请查看相关文档

默认情况下,MapStruct 会将源对象中的每个匹配属性映射到目标对象。

© www.soinside.com 2019 - 2024. All rights reserved.