簡體   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