5

在我的 hybris 应用程序中,我想覆盖我的 CustomerReview 项目类型,以便其属性产品用户不再是唯一的。

这些属性的唯一性在 CustomerReview 和 Product/User 之间的关系中声明。我尝试再次将关系声明添加到我的extname-items.xml 文件并设置适当的 unique="false" 属性,如下所示:

<relation generate="false" localized="false" code="ReviewToUserRel" autocreate="false">
    <sourceElement type="User" qualifier="user" cardinality="one">
        <modifiers write="false" initial="true" optional="false" unique="false" />
    </sourceElement>
    <targetElement type="CustomerReview" qualifier="customerReviews" cardinality="many">
        <modifiers write="false" initial="true" />
    </targetElement>
</relation>

但这并不能解决问题。在我重建应用程序并更新运行系统后,CustomerReview 的用户产品属性仍然是唯一属性。

那么这个问题的最佳解决方案是什么?

4

2 回答 2

4

确实,重写关系不会覆盖它。

解决它的另一种方法是向类型添加一个属性并将其设置为唯一。例如emailAddress

<itemtype code="CustomerReview" autocreate="false" generate="false">
    <attributes>
                <attribute type="java.lang.String" qualifier="email">
                    <persistence type="property" />
                    <modifiers read="true" write="true" unique="true"/>
                </attribute>
     </attributes>
</itemtype>

然后,只要emailAddress不同,您就可以从同一用户对同一产品进行多条评论。

于 2014-09-09T13:00:10.113 回答
1

更新关系不会覆盖现有关系。更好地为 CustomerReview 创建新的项目定义,然后将其与产品相关联。

于 2014-04-24T08:35:19.473 回答