如何在 Hybris 中创建复合唯一键
How to create composite unique key in Hybris
是否可以通过 items.xml 在 Hybris 中创建复合唯一键?
在给定的示例中:
<itemtype code="SimpleDevice">
<deployment table="simpleDevice" typecode="20063"/>
<attributes>
<attribute qualifier="productId" type="java.lang.String">
<persistence type="property" />
<modifiers unique="true" optional="false" initial="true"/>
<description>Device's product ID</description>
</attribute>
<attribute qualifier="serialNumber" type="java.lang.String">
<persistence type="property" />
<modifiers unique="true" optional="false" initial="true"/>
<description>Device's serial number</description>
</attribute>
</attributes>
</itemtype>
如何组合 2 属性使它们充当复合唯一键?我的 B 计划是使用一些拦截器在创建之前检查这样的组合是否已经存在。但我想避免在通过 Impex 导入多个项目时使数据库过载。
给出的例子已经正确。它使 productId 和 serialNumber 的组合独一无二。
您需要在 indexes 元素中添加新的唯一索引,以便在一个索引中同时使用多个属性。
<itemtype code="SimpleDevice">
<deployment table="simpleDevice" typecode="20063"/>
<attributes>
<attribute qualifier="productId" type="java.lang.String">
<persistence type="property" />
<modifiers unique="true" optional="false" initial="true"/>
<description>Device's product ID</description>
</attribute>
<attribute qualifier="serialNumber" type="java.lang.String">
<persistence type="property" />
<modifiers unique="true" optional="false" initial="true"/>
<description>Device's serial number</description>
</attribute>
</attributes>
<indexes>
<index name="SimpleDeviceIdx" unique="true">
<key attribute="productId" />
<key attribute="serialNumber" />
</index>
</indexes>
</itemtype>
是否可以通过 items.xml 在 Hybris 中创建复合唯一键?
在给定的示例中:
<itemtype code="SimpleDevice">
<deployment table="simpleDevice" typecode="20063"/>
<attributes>
<attribute qualifier="productId" type="java.lang.String">
<persistence type="property" />
<modifiers unique="true" optional="false" initial="true"/>
<description>Device's product ID</description>
</attribute>
<attribute qualifier="serialNumber" type="java.lang.String">
<persistence type="property" />
<modifiers unique="true" optional="false" initial="true"/>
<description>Device's serial number</description>
</attribute>
</attributes>
</itemtype>
如何组合 2 属性使它们充当复合唯一键?我的 B 计划是使用一些拦截器在创建之前检查这样的组合是否已经存在。但我想避免在通过 Impex 导入多个项目时使数据库过载。
给出的例子已经正确。它使 productId 和 serialNumber 的组合独一无二。
您需要在 indexes 元素中添加新的唯一索引,以便在一个索引中同时使用多个属性。
<itemtype code="SimpleDevice">
<deployment table="simpleDevice" typecode="20063"/>
<attributes>
<attribute qualifier="productId" type="java.lang.String">
<persistence type="property" />
<modifiers unique="true" optional="false" initial="true"/>
<description>Device's product ID</description>
</attribute>
<attribute qualifier="serialNumber" type="java.lang.String">
<persistence type="property" />
<modifiers unique="true" optional="false" initial="true"/>
<description>Device's serial number</description>
</attribute>
</attributes>
<indexes>
<index name="SimpleDeviceIdx" unique="true">
<key attribute="productId" />
<key attribute="serialNumber" />
</index>
</indexes>
</itemtype>