如何在 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.
参见:
我有一个枚举类型:
<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.
参见: