为了账号安全,请及时绑定邮箱和手机立即绑定

Mapstruct 在不覆盖的情况下更新值

Mapstruct 在不覆盖的情况下更新值

森林海 2021-11-11 15:55:06
有没有办法指示 MapStruct 不覆盖目标中的值?例如:public interface IMyMapper {    IMyMapper INSTANCE = Mappers.getMapper(IMyMapper.class);    @Mappings({            @Mapping(target = "foo", source = "source.FOO"),            @Mapping(target = "bar", source = "source.BAR2"),    })    void updateTargetEntity(@MappingTarget MyTarget target , MySource source);}class MyTarget { String a; String b; ...}class MySource { String a; String b; ...}例如,在哪里target将有a = "asdf",source将有a = "zzz",我不想zzz覆盖asdf。注意:我不想总是忽略值,我只是不想覆盖它们(如果它们存在)。我试图在这里查看几种映射策略:http : //mapstruct.org/documentation/stable/reference/html/但它们似乎都不适合。
查看完整描述

1 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

我们目前正在讨论这个问题。有一个PR待定。留意那个。对于 BeanMappings,所有当前策略都适用于 BeanMapping 级别,而不是属性级别。因此,NullValueMappingStrategy 会告诉您当输入 bean(或 Map,或 MapMapping、IterableMapping 中的 List)为空时会发生什么。有(直到很快)没有你正在寻找的东西。


查看完整回答
反对 回复 2021-11-11
  • 1 回答
  • 0 关注
  • 645 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信