我在服务中有一个更新实体的方法。它接受具有更新实体的数据的对象。 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)
}
}
是的,您需要做的就是使用
Mapper
方法定义 update
,例如:
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
@Mapper
public interface EntityMapper {
void update(@MappingTarget Entity entity, UpdateEntity updateEntity);
}
请查看相关文档。
默认情况下,MapStruct 会将源对象中的每个匹配属性映射到目标对象。