当前位置: 首页 > news >正文

impex 语法

脱离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语句。

在对照页面模板的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";



http://www.xdnf.cn/news/811747.html

相关文章:

  • 什么是中台?一篇带你了解中台的概念
  • 无线网络通信技术完全介绍
  • 联合循环——17( Heat Recovery Steam Generator 余热锅炉 )
  • 无法识别的属性“targetFramework”。请注意属性名称区分大小写。错误解决办法
  • Unity3d Web Player 的server端联网配置
  • 批量网刻安装操作系统之PXE网络克隆图文教程
  • 【20230404】Ubuntu 20.04 tweak
  • Delphi 文件操作
  • Playwright定位器详解:自动化测试的核心工具
  • adsl modem是什么意思?ADSL Modem的作用是什么?
  • Windows徽标键(WinKey)的屏蔽和恢复
  • 简析:spring配置文档中beans的xmlns和xsi:schemaLocation
  • github工具_Github Statistics 一个基于 React 的 GitHub 数据统计工具
  • 期货入门必备知识,了解最全的期货知识
  • Lua内存泄露检测原理
  • 新一代 AVS3 视频编码标准
  • Bootstrap中定制LESS-颜色及导航条
  • 如何显著提升小目标检测精度?深度解读Stitcher:简洁实用、高效涨点
  • windows系统下帧率获取工具--fraps
  • Verilog case/casez/casex的区别
  • 手机号验证最新正则表达式
  • 基于单片机智能温控器控制系统设计
  • FreeEIM(飞鸽传书)应用虚拟化系统
  • 51单片机最小系统原理图、PCB及组成原理详解
  • 【简单html静态网页代码】 保护环境网页设计模板 简单学生网页设计 静态HTML CSS网站制作成品
  • 三级网络
  • linux内存的active,Linux性能优化和监控系列(三)——分析Memory使用状况
  • ES15新特性
  • Local System/Network Service/Local Service权限详解
  • js 中文转为首字母拼音