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