可以为 ClassData 和 ClassWsDTO 自定义映射器 - Hybris - YCommerceWebServices



我的数据类中有一个对象,我只想在 WsDTO 类中获取此对象的特定属性。

自定义 B2BUnitData 的声明

<bean class="de.hybris.platform.b2bcommercefacades.company.data.B2BUnitData">
<property name="PointOfServiceData"
type="de.hybris.platform.commercefacades.storelocator.data.PointOfServiceData"/>
</bean>

B2bUnitWsDTO声明

<bean class="de.hybris.platform.b2boccaddon.dto.b2bunit.B2bUnitWsDTO">
<property name="PointOfServiceData" type="PointOfServiceWsDTO" />
</bean>

文件 : DTO-level-mappings-v2-spring.xml

<bean parent="fieldSetLevelMapping" id="b2bunitWsDTOFieldSetLevelMapping">
<property name="dtoClass"
value="de.hybris.platform.b2boccaddon.dto.pricerow.B2bUnitWsDTO"/>
<property name="levelMapping">
<map>
<entry key="FULL" value="PointOfServiceData" />
</map>
</property>
</bean>

这个实现给了我所有的对象点服务,但我只想要 B2bUnitWsDTO 中的 UID 属性

我知道的唯一解决方案是在数据中创建一个 PointOfServiceUID 属性,并将其直接映射到 b2bunitWsDTOFieldSetLevelMapping bean 中。

我会知道是否可以在 dto-level-mappings-v2-spring 中映射.xml我的对象的一个属性:

示例 :

或者,如果存在一些解决方案来做到这一点

正如你已经提到的,你可以改变dto-level-mappings-v2-spring.xml,以便对于所有级别(BASICDEFAULTFULL(只返回uid。

<bean parent="fieldSetLevelMapping" id="b2bunitWsDTOFieldSetLevelMapping">
<property name="dtoClass"
value="de.hybris.platform.b2boccaddon.dto.pricerow.B2bUnitWsDTO"/>
<property name="levelMapping">
<map>
<entry key="BASIC" value="PointOfServiceData(uid)" />
<entry key="DEFAULT" value="PointOfServiceData(uid)" />
<entry key="FULL" value="PointOfServiceData(uid)" />
</map>
</property>
</bean>

请注意,fieldSetLevelMapping豆只定义您的反应是什么样子的!

如果要更改B2BUnitData映射到B2bUnitWsDTO的方式,则必须定义自定义字段映射器(可以在dto-mappings-v2-spring.xml中找到示例(

假设您的B2bUnitWsDTO现在只有pointOfServiceUID作为属性,这可能看起来像这样(免责声明:您需要对此进行测试(:

<bean id="b2bUnitFieldMapper" parent="fieldMapper">
<property name="sourceClass"
value="de.hybris.platform.b2bcommercefacades.company.data.B2BUnitData"/>
<property name="destClass"
value="com.customer.some.package.B2bUnitWsDTO"/>
<property name="fieldMapping">
<map>
<entry key="PointOfServiceData.uid" value="pointOfServiceUID"/>
</map>
</property>
</bean>

以下是有关字段映射和字段级别定义的良好文档入口点: https://help.hybris.com/1808/hcd/8c404c5886691014a48c88f4a49f9bf3.html

相关内容

  • 没有找到相关文章

最新更新