为什么enumtype dinamic =“false”设置为false?什么时候应该把它设置为真?
<enumtype code="MyEnumType" generate="true" autocreate="true" dynamic="false">
<value code="NONE" />
<value code="ONE" />
</enumtype>
谢谢!
答案 0 :(得分:2)
使用hybris enumtype,您可以选择定义静态枚举或动态枚举。静态(dynamic =&#34; false&#34;)表示枚举仅包含已定义的元素。在运行时,您将永远无法向枚举添加元素。当您使用动态枚举时(动态=&#34; true&#34;),这会有所不同。使用动态枚举,您可以在运行时添加值。因此,如果您希望枚举为静态,请使用dynamic =&#34; false&#34;。如果要在运行时添加值,请使用dynamic =&#34; true&#34;。
答案 1 :(得分:1)
我想我找到了答案:
INSERT_UPDATE ManufacturerName;code[unique=true];name[lang=de];name[lang=en]
,,,,Exception : line 9: cannot create ManufacturerName with values ItemAttributeMap[ registry: null, type: <null>, data: {code=00000023344, name={8796093054536->de=3D , 8796093054536->en=3D }} ] due to [de.hybris.platform.servicelayer.interceptor.impl.EnumerationValidator@197d511d]:Enum type ManufacturerName is not dynamic - can not create new enum value 00000023344. If you want to add a new value to this type you have to define the enum type as non dynamic at items.xml (needs system update afterwards).
答案 2 :(得分:0)
简单来说,我可以说静态枚举(dynamic="false"
,默认值)是作为Java枚举生成的。通过更改items.xml,只能在编译期间更改值列表。如果是动态枚举(dynamic="true"
),我们可以在运行时使用hmc或Impex更改(添加/删除)其值。
<enumtype code="FixedValueType" autocreate="true" generate="true">
<value code="value1"/>
<value code="value2"/>
</enumtype>
<enumtype code="OrderStatus" autocreate="true" generate="true" dynamic="true">
<value code="CREATED"/>
<value code="ON_VALIDATION"/>
<value code="COMPLETED"/>
<value code="CANCELLED"/>
</enumtype>
答案 3 :(得分:0)
如果为dynamic ="false"
,则表示它充当java_Enum
(无法修改)。
如果dynamic ="true"
充当hybris_Enum
(即,您可以在运行时通过hac添加附加的Enumeration值Types
)。