当前位置: 首页 > 知识库问答 >
问题:

文件id参考文件不适用于impex

柳高卓
2023-03-14

我对包含文档id引用的impex有问题。

来自docs:“尤其是对于导入partOf项值,有必要通过通常的唯一列技术以外的方式引用这些项,因为partOf项通常不提供唯一键,而只将其封闭父项作为外键保存。”

来自*项目的项目。xml(仅是最重要的部分)

<itemtype code="A" autocreate="true" generate="true" abstract="true"/>

<itemtype code="B" autocreate="true" generate="true" extends="A">
    <deployment table="btable" typecode="20115" />
    <attributes>
        <attribute qualifier="code" type="java.lang.Integer" autocreate="true" generate="true">
         <persistence type="property"/>
         <modifiers optional="false"/>
    </attribute>
</attributes>
</itemtype>

<itemtype code="C" autocreate="true" generate="true">
    <deployment table="ctable" typecode="20117" />
    <attributes>
        <attribute qualifier="code" type="java.lang.String" autocreate="true" generate="true">
            <persistence type="property"/>
            <modifiers optional="false" unique="true"/>
        </attribute>
        <attribute qualifier="test" type="A" autocreate="true" generate="true">
            <persistence type="property"/>
            <modifiers optional="false" partof="true"/>
        </attribute>
    </attributes>
</itemtype>

Impex代码:

INSERT B;code;&docIdRef
;1;docId

INSERT_UPDATE C;code[unique=true];test(&docIdRef)
;uniqueCode;docId

错误消息:

 cannot create C with values ItemAttributeMap[ registry:  null, type: <null>, (...) due to [de.hybris.platform.servicelayer.interceptor.impl.MandatoryAttributesValidator@3b777877]:missing values for [test] in model C

当我从test属性(C类)中删除partof修饰符时,一切正常。

我想知道如果我想保留“partof”修饰符,impex应该是什么样子。

共有3个答案

云建木
2023-03-14

由于您提到了partof=“true”,因此无法分配a类型的引用。只能创建一个新实体。

检查OOTBAbstractOrder2AbstractOrderEntry关系,他们提到partof="true"对于AbstractOrderEntry意味着您不能引用任何其他AbstractOrderEntryorder。您可以随时创建新的条目。

也可以看看HMC网站

您可以看到这里没有可用的添加条目按钮。互惠是可能的。

衡翰翮
2023-03-14

如果确定数据正确,可以使用[forceWrite=true]修饰符或传统模式跳过服务层验证。

您还应该确保这个配置是您真正需要的。将optional设置为true或partOf设置为false,或提供默认值,都可以解决这个问题。

宗政鸿志
2023-03-14

使用partOf时,必须使用所有者引用partOf

所以它做到了:

INSERT B;owner(C.code);&docIdRef
;uniqueCode;docId

INSERT_UPDATE C;code[unique=true];test(&docIdRef)
;uniqueCode;docId

您不需要分配B标识符,只需要引用所有者。

 类似资料:
  • 背景:我正在写一个游戏(作为一个可执行的罐子),我的游戏的一部分是一个偏好对话框,你可以在其中设置对手的名字和影响游戏进展的不同变量。我决定这将是很好的,如果这些被保存在退出,所以下一次你加载的应用程序,它会记得你之前设置了什么。 为此,我将变量写入jar中的一个txt文件,然后在启动新游戏时读取该文件。通过eclipse,这一切都可以正常工作,但当我导出到jar时,它根本不起作用。这是我用来读取

  • 我正在尝试使用WebView显示包含表的本地超文本标记语言文件。但是,当我使用WebView在线检查网站时,它运行良好,问题是当我尝试使用本地超文本标记语言文件时。 这是代码的webView部分: 我用一个在线主机测试了这个HTML文件,它工作得很好:

  • 所以,我花了一个小时试图解决这个问题,但是我就是不能让自定义的. css文件在Spring 5中与html文件链接。我正在使用Thymeleaf,Bootstrap 我的文件层次结构如下所示: 我在: 这应该把我的风格和。html文件。怎么了?

  • 背景: 最近我一直在开发一个程序,该程序对输入数据文件(用户以完整路径或名称的形式给出,如果它位于程序创建的名为inputFiles的文件夹中)执行一些数据分析并吐出一堆输出数据文件(使用CSV)。 问题: 我遇到的问题是,当我运行时。jar在我的Windows机器上,它将创建3个文件夹(InputFiles、TempFiles和OutPutFiles),但当程序在Mac上时,GUI会启动,但不会

  • 问题内容: 我正在尝试使用GoogleidentityToolkit库来处理登录问题。我启用use_frameworks!在我的Pod文件中,但是找不到模块GITkit。我试图弄清楚发生了什么。据我所知,如果您使用“ use_frameworks”,则不需要创建任何桥接头文件,因为cocoapods将库向下编译为一个模块,因此以后您可以照常将其导入* .swift文件中。 在Swift中使用Goo

  • 我有两个文件。 生成文件 从中搜索字符串,如,并在文件中匹配它并替换它。 搜索 替换为 我尝试了以下代码搜索目标字符串。但是,无法生成预期的输出。