gpt4 book ai didi

java - Dozer 仅在接收 bean 映射字段为 null 时复制

转载 作者:行者123 更新时间:2023-11-30 04:43:04 25 4
gpt4 key购买 nike

如何配置 Dozer,以便在 bean b 中的字段为 null 时,它仅将 bean a 中的一个字段的值复制到 bean b 中的字段?我正在使用 dsl 配置

mapping(FirstGivingPayloadV1.Payload.class, Nonprofit.class, oneWay(),
mapNull(false), mapId("firstGivingPayloadV1"))
.fields("latitude", "latitude")
.fields("longitude", "longitude")
.fields("revoked", "isNonProfitStatusVerified");
.fields("url", "websiteUrl"); // only copy url if webSiteURL == null or is empty

最佳答案

为此字段转换编写自定义转换器。自定义转换器应检查 bean b 中的字段是否为空,以及是否将字段 a 复制到其中。

来自推土机文档:

在下面的示例中,Dozer 将调用自定义转换器来执行字段映射。

<mapping>
<class-a>org.dozer.vo.SimpleObj</class-a>
<class-b>org.dozer.vo.SimpleObjPrime2</class-b>
<field custom-converter-id="CustomConverterWithId">
<a>field1</a>
<b>field1Prime</b>
</field>
</mapping>

在自定义转换器中,您可以访问目标对象,并且可以检查它是否为 null,查看 convert 方法签名:

public class TestCustomConverter implements CustomConverter {
public Object convert(Object destination, Object source, Class destClass, Class sourceClass) {...

关于java - Dozer 仅在接收 bean 映射字段为 null 时复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783621/

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