impex 语法
来源:互联网 发布:软件开发标准规范 编辑:程序博客网 时间:2024/06/18 09:22
脱离java Model单纯的去看impex文件的代码是不能很好理解impex的:
今天看了一下Impex的语法,清晰了许多:
impex语法在我理解有几个需要注意的地方:
1)Impex是基于java Model的一种面向对象的数据操作手段,因此写impex代码前需要理清java Model之间的依赖关系,
今天看了一下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语句。
在对照页面模板的impex文件时,发现TypeCode,Attribute在hybris并没有相应的java文件和属性对应,而是impex文件里对应的TypeCode在Hybris系统里对应一个编译后生成的Model文件,Hybris在生成的java文件通过一些属性和方法使impex文件TypeCode,Attributes与Mode文件里的属性对应。
e.g:
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";
0 0
- impex 语法
- 10024---常用Impex
- Hybirs 使用impex删除一个表的所有内容
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- 语法
- c++启程咯
- ADSL错误代码表
- android studio应用(三):as gradle 解决方法数超过65535问题
- 模态对话框导致setTimeout失效的解决方案(一)
- cad怎么快速对齐标注,cad中,怎么把连续几个标注快速对齐
- impex 语法
- android基础学习005_Android 中一般支持的常用距离单位
- Maven创建web项目具体过程
- dwr的util的使用
- C Programming Chapter2
- 新闻快讯学习(一)
- IOS应用开发中的设备标识
- 在Perl里 对象就是hash引用
- Maven项目的结构图