为什么Hybris中的“productslp”而不是“products”表中存在某些属性?

时间:2017-05-18 04:38:49

标签: hybris

为什么attribute itemtype中定义的产品Product不会显示在products表格中,而是显示在productslp表格中?

4 个答案:

答案 0 :(得分:1)

PRODUCTSLP是产品项的lang表,如果任何本地化属性在项中定义,那么这些数据将存储在LP表中。这个表的创建和加入将由hybris内部完成。

注意:您可以在相应的表中找到前缀为p_的每个属性。 name将存储在p_name

答案 1 :(得分:0)

* lp文件用于本地化。您的属性具有本地化选项。

答案 2 :(得分:0)

示例:p_name,p_description。在cores-item.xml文件中:

 <itemtype code="Product"
              extends="GenericItem"
              jaloclass="de.hybris.platform.jalo.product.Product"
              autocreate="true"
              generate="true">
        <deployment table="Products" typecode="1" propertytable="ProductProps"/>
        <attributes>
            <attribute autocreate="true" qualifier="code" type="java.lang.String" generate="true">
                <persistence type="property"/>
                <modifiers read="true" write="true" search="true" initial="true" optional="false" unique="true"/>
                <custom-properties>
                    <property name="hmcIndexField">
                        <value>"thefield"</value>
                    </property>
                </custom-properties>
            </attribute>
            <attribute autocreate="true" qualifier="name" type="localized:java.lang.String">
                <modifiers read="true" write="true" search="true" optional="true"/>
                <persistence type="property"/>
                <custom-properties>
                    <property name="hmcIndexField">
                        <value>"thefield"</value>
                    </property>
                </custom-properties>
            </attribute>
            <attribute autocreate="true" qualifier="unit" type="Unit" generate="true">
                <persistence type="property"/>
                <modifiers read="true" write="true" search="true" optional="true"/>
            </attribute>
            <attribute autocreate="true" qualifier="description" type="localized:java.lang.String">
                <modifiers read="true" write="true" search="true" optional="true"/>
                <persistence type="property">
                    <columntype database="oracle">
                        <value>CLOB</value>
                    </columntype>
                    <columntype database="sap">
                        <value>NCLOB</value>
                    </columntype>
                    <columntype>
                        <value>HYBRIS.LONG_STRING</value>
                    </columntype>
                </persistence>
                <custom-properties>
                    <property name="hmcIndexField">
                        <value>"thefield"</value>
                    </property>
                </custom-properties>
            </attribute>
            <attribute autocreate="true" qualifier="thumbnail" type="Media">
                <persistence type="property"/>
                <modifiers read="true" write="true" search="true" optional="true"/>
            </attribute>
            <attribute autocreate="true" qualifier="picture" type="Media">
                <persistence type="property"/>
                <modifiers read="true" write="true" search="true" optional="true"/>
            </attribute>
        </attributes>
        <indexes>
            <index name="Product_Code">
                <key attribute="code"/>
            </index>
        </indexes>
    </itemtype>

我看到属性已定义为obove.but但未在表格产品中看到它。注意:

<deployment table="Products"...>

是什么意思?

答案 3 :(得分:0)

用于项目类型的部署元素在db上保存表名。属性的类型属性中的本地化值需要按语言进行本地化。所以hybris会自动创建另一个带后缀lp的表。