如何在 Hybris 中建立枚举类型和项目类型之间的关系

How to make relation between enumtype and itemtype in Hybris

我有一个枚举类型:

<items>
 <enumtypes>
  <enumtype code="FuelEnumeration" generate="true" autocreate="true" dynamic="true"> 
   <value code="diesel"></value>
   <value code="gasoline"></value> 
   <value code="ethanol"></value>
 </enumtype> 
</enumtypes>

这是项目类型:

<itemtypes> 
<itemtype code="Car" extends="Product" autocreate="true" generate="true">
 <attributes> ... <attribute qualifier="fuel" type="FuelEnumeration"> 
<description>Fuel for this car</description> 
<persistence type="property"></persistence>
 </attribute>

我想在 enumtype 和 itemtype 之间创建一对多关系,以便一辆车可以有多个 FuelEnumeration,我该怎么做?

您好,请创建集合类型

<collectiontype code="fuelEnumColl"
        elementtype="FuelEnumeration" autocreate="true" generate="true"
        type="list" />

然后参考你的物品类型。

<attribute qualifier="fuel" type="fuelEnumColl"> 

如果您真的想 one-to-many 使用关系,下面是您的操作方法。

    <relation code="Car2FuelRel" generate="true" localized="false" autocreate="true">
        <sourceElement qualifier="car" type="Car" cardinality="one">
            <modifiers read="true" write="true" search="true" optional="true" />
        </sourceElement>
        <targetElement qualifier="fuel" type="FuelEnumeration" cardinality="many" collectiontype="set">
            <modifiers read="true" write="true" search="true" optional="true" />
        </targetElement>
    </relation>

然而,这是不正确的,因为one-to-many意味着一辆车可以有多个燃料枚举,但一个燃料枚举只能属于一辆车。这样做可能更好 many-to-many。只需将 sourceElement 的基数更改为 many.

您也可以选择使用 collection,如 Raushan 所述。但是,collection 使得搜索汽车是否具有特定燃料值变得困难。 Hybris 建议使用关系,而不是 collections.

参见: