gpt4 book ai didi

java - Dozer boolean 映射 - boolean 值

转载 作者:行者123 更新时间:2023-12-01 10:34:58 25 4
gpt4 key购买 nike

我正在公开一个使用另一个 SOAP 服务的服务。我获得了 JAXB 生成的服务模型。当我使用该服务时,数据被设置到与该模型相关的对象中。我已经定义了自己的域模型,它具有与 JAXB 模型完全相同的类集,但没有 xml 注释等。我使用 dozer 来执行数据映射。当某些标有注释 (nillable=true) 的 boolean 元素为 null 时,我的域模型中的目标对象 Boolean 对象将设置为默认 true 或 false 值。我希望它保留相同的空值。下面列出了 boolean 变量的映射和定义。

<mapping>
<class-a>com.customer.types.CustomerPreferences
</class-a>
<class-b>com.customer.types.xml.CustomerPreferences
</class-b>
<field>
<a is-accessible="true">isRequired</a>
<b is-accessible="true">isRequired</b>
</field>
</mapping>

JAXB 模型

  @javax.xml.bind.annotation.XmlElement(nillable=true)
protected java.lang.Boolean isRequired;
// getters and setters

领域模型

private Boolean isRequired;
//getters and setters

最佳答案

这是因为 JAXB 为 boolean (对象)属性生成带有“is”前缀的方法,但 Dozer 对原始 boolean 类型使用“is”前缀。 “Is-accessible”Dozer 映射配置属性应该可以解决问题。但由于某种原因似乎没有。您可以尝试:

通过删除“is”前缀重命名域模型中的属性

将域模型中的 getter 和 setter 重命名为 get/set

使用“get-method”Dozer映射配置属性来定义JAXB模型的get方法

使用XJC插件修复JAXB模型中的get方法

关于java - Dozer boolean 映射 - boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34815149/

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