[英]Dozer Boolean Mapping - Boolean Values
我正在公开使用另一个SOAP服务的服务。 向我提供了JAXB生成的服务模型。 当我使用该服务时,数据被设置到与该模型相关的对象中。 我已经定义了自己的域模型,该域模型具有与JAXB模型完全相同的类集,但是没有xml注释等。我正在使用推土机执行数据映射。 当某些标有注释(nillable = true)的布尔元素为null时,我的域模型中的目标对象Boolean对象将设置为默认true或false值。 我希望它保留相同的null值。 下面列出了布尔变量的映射和定义。
<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会为布尔(对象)属性生成带有“ is”前缀的方法,而Dozer将为原始布尔类型使用“ is”前缀。 “可访问”的Dozer映射配置属性应解决该问题。 但似乎出于某种原因却没有。 您可以尝试:
通过删除“ is”前缀在域模型中重命名属性
重命名域模型中的获取器和设置器以获取/设置
使用“ get-method”推土机映射配置属性来定义JAXB模型的get方法
使用XJC插件修复JAXB模型中的get方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.