gpt4 book ai didi

java - 是否可以使用 Orika Mapper 将字段从两个源对象映射到目标对象?

转载 作者:行者123 更新时间:2023-11-30 06:52:55 29 4
gpt4 key购买 nike

在网络上,我发现了许多示例,其中使用 Orika 映射框架将一个源对象的字段映射到目标对象,如下所示。

mapperFactory.classMap(BasicPerson.class, BasicPersonDto.class)
.field("name", "fullName")
.field("age", "currentAge")
.register();

但是我的要求与这种传统的映射不同。我得到两个源对象和一个目标对象。我需要将第一个源对象中的一些字段和第二个源对象中的一些字段映射到目标对象。

请发表您对此场景的建议。

最佳答案

BoundMapperFacade 有一个 map(A source, B target)方法,允许您从 source 映射到 target 的现有实例。这样您就可以从两个不同的源对象映射到同一目标对象。

示例代码:

class SourceA {
String fieldASource;
}

class SourceB {
String fieldBSource;
}

class Target {
String fieldATarget;
String fieldBTarget;
}

public Target mapToTarget() {
mapperFactory.classMap(SourceA.class, Target.class).field("fieldASource", "fieldATarget").register();
mapperFactory.classMap(SourceB.class, Target.class).field("fieldBSource", "fieldBTarget").register();

Target target = new Target();
SourceA sourceA = new SourceA();
SourceB sourceB = new SourceB();

mapperFactory.getMapperFacade(SourceA.class, Target.class).map(sourceA, target);
mapperFactory.getMapperFacade(SourceB.class, Target.class).map(sourceB, target);

return target;
}

targetfieldATarget 字段将由 sourceA 对象填充,而 fieldBTarget 则由 填充sourceB 对象。

关于java - 是否可以使用 Orika Mapper 将字段从两个源对象映射到目标对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38118466/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com