impex 语法

impex 语法脱离 javaModel 单纯的去看 impex 文件的代码是不能很好理解 impex 的 今天看了一下 Impex 的语法 清晰了许多 impex 语法在我理解有几个需要注意的地方 1 Impex 是基于 javaModel 的一种面向对

大家好,欢迎来到IT知识分享网。
脱离java Model单纯的去看impex文件的代码是不能很好理解impex的:


今天看了一下Impex的语法,清晰了许多:


impex语法在我理解有几个需要注意的地方:


1)Impex是基于java Model的一种面向对象的数据操作手段,因此写impex代码前需要理清java Model之间的依赖关系,

2)头模式:

头模式决定这段impex代码做什么样的操作,头模式有四种:INSERT,UPDATE,INSERT_UPDATE,REMOVE
根据字面意思我们可以知道每种模式做什么样的操作,不赘述。
impex 文件的理解:
3)impex代码的结构:
Header Model typeCode;Attributes
UPDATE Type;Attribute1;Attribute2;
value1;value2;

假设有以下的java Model的依赖关系关系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class
Person{
    
String id;
    
String name;
}
 
class
House{
    
String id
    
Person owner;
    
String address;
}
 
class
Company{
    
String id
    
String name;
    
List employee;
}

如何使用impex创建Person,House,Company

1
2
3
4
5
6
7
8
9
INSERT_UPDATE Person;id[unique=true];name[lang=en]
;p00001;Test Name1
;p00002;Test Name2
 
INSERT_UPDATE House;id[unique=true];owner(id[unique=true],name);address
;H00001;p00001:Test Name1;Test Address
 
INSERT_UPDATE Campany;id[unique=true];name;employee(id[unique=true],name)
;c0001;Test Company;p00001:Test Name1,p00002:Test Name2


从wiki资料上来看,前面三个操作的顺序是可以改变的,hybris处理impex的文件机制是
当前操作的impex依赖的对象尚未创建时,hybris 会把当前这条impex语句保存到一个临时文件,
当impex的语句被执行完以后,再处理临时文件中的impex语句。

1
2
3
4
5
INSERT_UPDATE PageTemplate;catalogVersion(catalog(id[default=hybrisContentCatalog]),version[default=Online])[unique=true];uid[unique=true];name;frontendTemplateName;restrictedPageTypes(code);active[default=true]
PageTemplate对应一个编译后生成的PageTemplateModel
PageTemplateModel.java里有如下代码
public final static String _TYPECODE = "PageTemplate";
public static final String CATALOGVERSION = "catalogVersion";

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/158958.html

(0)
上一篇 2024-11-27 16:45
下一篇 2024-11-27 17:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信