繁体   English   中英

推土机布尔映射-布尔值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM