gpt4 book ai didi

java - 了解 Hybris 中的 Impex 语法语句

转载 作者:行者123 更新时间:2023-11-30 06:03:14 25 4
gpt4 key购买 nike

您好,我正在尝试学习 Hybris,但由于我无法访问 Wiki 站点,因此我很难理解代码背后的基础知识。有人可以帮助我理解以下 Impex 声明中的主页文本“欢迎来到主页”。

我从下面的代码中得到的问题是;实际上,我有更多但不想增加负担,但如果你能在 Impex 声明的大多数基础知识上帮助我,我将不胜感激。

1)有些地方使用了多个分号,为什么?
2)什么是uid?
3) starts 中定义的参数值似乎在每个语句中的两个分号 (;;) 之后开始,让我知道我是正确的?

INSERT_UPDATE CMSParagraphComponent;$contentCV[unique=true];uid[unique=true];name;&componentRef;;;;content;
;;welcomeInfoComponent;Welcome information;welcomeInfoComponent;;;;welcome to home page;

INSERT_UPDATE ContentSlotName;name[unique=true];template(uid,$contentCV)[unique=true][default='LandingPage2Template'];validComponentTypes(code);compTypeGroup(code)
;welcomeInfo;;;wide

INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active
;;welcomeInfoSlot;welcome info slot;true

INSERT_UPDATE ContentSlotForTemplate;$contentCV[unique=true];uid[unique=true];position[unique=true];pageTemplate(uid,$contentCV)[unique=true][default='LandingPage2Template'];contentSlot(uid,$contentCV)[unique=true];allowOverwrite
;;WelcomeInfo-LandingPage2;welcomeInfo;;welcomeInfoSlot;true

INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];cmsComponents(uid,$contentCV)
;;welcomeInfoSlot;welcomeInfoComponent

最佳答案

what is uid?

uid 是在 CMSItem 中定义为唯一的属性。大多数 CMS 项目都扩展 CMSItem。因此,您必须为 Impex 中的所有记录赋予唯一值。此外,uid 已用于将 CMSItem 声明为目录感知。

<itemtype code="CMSItem" jaloclass="de.hybris.platform.cms2.jalo.contents.CMSItem" extends="GenericItem" autocreate="true"
generate="true" abstract="true">
<custom-properties>
<property name="catalogItemType">
<value>java.lang.Boolean.TRUE</value>
</property>
<property name="catalogVersionAttributeQualifier">
<value>"catalogVersion"</value>
</property>
<property name="uniqueKeyAttributeQualifier">
<value>"uid"</value>
</property>
</custom-properties>
<attributes>
<attribute qualifier="uid" generate="true" autocreate="true" type="java.lang.String">
<persistence type="property" />
<modifiers optional="false" unique="true" />
</attribute>
<attribute qualifier="name" generate="true" autocreate="true" type="java.lang.String">
<persistence type="property" />
</attribute>
<attribute qualifier="catalogVersion" type="CatalogVersion">
<modifiers optional="false" unique="true" />
<persistence type="property" />
</attribute>
</attributes>
</itemtype>

it seems values of parameters defined in starts begins after two semicolons (;;) in each statement, let me know I'm correct?

让我先格式化你的 impex,这样你就会明白了

INSERT_UPDATE CMSParagraphComponent ; $contentCV[unique=true] ; uid[unique=true]     ; name                ; &componentRef        ;  ;  ;  ; content              ;  
; ; welcomeInfoComponent ; Welcome information ; welcomeInfoComponent ; ; ; ; welcome to home page ;

这里

  • INSERT_UPDATE 是您的 impex 模式
  • CMSParagraphComponent 是 ItemType
  • 然后你必须把; (分号),这只是值分隔符。从这里您可以开始声明属性/列名称(例如 uid、名称等)以及修饰符(例如 [unique=true])。
  • 现在您的值应该在第一行定义的列下方(称为标题)。对于某些列,您不需要声明值或者您想要声明空白值,那么您只需将其保留为空白,就像我们对 $contentCV
  • 所做的那样
  • $contentCV 是用于提供 catalogVersion 属性值的宏,它主要在文件顶部定义。在导入过程中,这些宏被解析,宏名称被宏值替换。因此,我们将值留空,因为我们不需要为每个值行提供其值。

in some place more than one semicolon is used, why?

只是为了文件的可读性,您可以在标题中放置任意数量的分号,并在值行中放置相同的分号。如果你删除那些额外的 ; 即使你的 Impex 会运行

INSERT_UPDATE CMSParagraphComponent ; $contentCV[unique=true] ; uid[unique=true]     ; name                ; &componentRef        ;  content              ;  
; ; welcomeInfoComponent ; Welcome information ; welcomeInfoComponent ; welcome to home page ;

关于java - 了解 Hybris 中的 Impex 语法语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52709328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com