推土机布尔映射 - 布尔值
Dozer Boolean Mapping - Boolean Values
我正在公开一个使用另一个 SOAP 服务的服务。我获得了 JAXB 生成的服务模型。当我使用服务时,数据被设置到与该模型相关的对象中。我已经定义了我自己的域模型,它具有与 JAXB 模型完全相同的一组 类,但没有 xml 注释等。我正在使用推土机执行数据映射。当某些标有注解 (nillable=true) 的布尔元素为 null 时,我的域模型中的目标对象布尔对象设置为默认 true 或 false 值。我希望它保留相同的空值。布尔变量的映射和定义如下。
<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" 前缀。 "Is-accessible" 推土机映射配置 属性 应该可以解决问题。但由于某种原因,它似乎没有。你可以试试:
通过删除 "is" 前缀在域模型中重命名 属性
将域模型中的吸气剂和 setter 重命名为 get/set
使用"get-method" Dozer映射配置属性定义JAXB模型的get方法
使用 XJC 插件修复 JAXB 模型中的 get 方法
我正在公开一个使用另一个 SOAP 服务的服务。我获得了 JAXB 生成的服务模型。当我使用服务时,数据被设置到与该模型相关的对象中。我已经定义了我自己的域模型,它具有与 JAXB 模型完全相同的一组 类,但没有 xml 注释等。我正在使用推土机执行数据映射。当某些标有注解 (nillable=true) 的布尔元素为 null 时,我的域模型中的目标对象布尔对象设置为默认 true 或 false 值。我希望它保留相同的空值。布尔变量的映射和定义如下。
<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" 前缀。 "Is-accessible" 推土机映射配置 属性 应该可以解决问题。但由于某种原因,它似乎没有。你可以试试:
通过删除 "is" 前缀在域模型中重命名 属性
将域模型中的吸气剂和 setter 重命名为 get/set
使用"get-method" Dozer映射配置属性定义JAXB模型的get方法
使用 XJC 插件修复 JAXB 模型中的 get 方法