1、Impex是基于java Model的一种面向对象的数据操作手段,因此写impex代码前需要理清java Model之间的依赖关系。
2、基本语法:mode type[modifier=value];attribute[modifier=value];attribute[modifier=value];attribute[modifier=value][;...];attribute[modifier=value]
  • mode:提供四种操作insert、update、insert_update、remove等操作

    • Insert:在Hybris中创建一个item,Impex默认不检查是否存在相同属性的item
    • Update:在hybris中通过一个unique的属性,选择一个存在的item,将属性值设置到对应的值上
    • Insert_update:将insert和Update方式合并。
    • Remove:hybris会尝试寻找正确的item,如果一个item存在,它将被删除
  • type:定义处理的item类型,category,product,media等等
  • attribute:映射到对象的column属性
  • modifier 控制说明使用,来说明这个column的限制
    • alias 别名
    • allownull
    • cellDecorator
    • collection-delimiter
    • dateformat 时间格式化
    • default 默认值
    • forceWrite
    • ignoreKeyCase
    • ignorenull
    • key2value-delimiter 键值对
    • lang 定义语言,多语言。lang=en
    • map-delimiter
    • mode
    • numberformat
    • path-delimiter
    • pos
    • translator
    • unique 控制属性唯一 unque=true
    • virtual
3、Demo
insert User;uid[unique=true] Customer;sampleCustomer Employee;SampleEmployee
Customer 和 Employee是User的子类,以上表示增加两个对象
等价于
insert Customer;uid[unique=true] ;sampleCustomer
insert Employee;uid[unique=true] ;sampleEmployee
中间用空格隔开表示后面的依次为前面的赋值,不用空格隔开表示是对象的属性
----------------------------------------------------------------------------------------------------------------------------
insert product;code;unit(code);catalogVersion(catalog(id),version)
;testCode;pieces;clothescatalog:staged
catalogVersion(catalog(id),version)
id=clothescatalog,version=staged;
查询方式:先根据id=clothescatalog查出cataloglog对象,然后根据对象的pk和version等于staged查出catalogVersion对象的pk和version等于Staged查询出catalogVersion对象的PK
 
---------------------------------------------------------------------------------------------------------------------------
insert language;code;;active ;de;deutsch;true
;;表示跳过这一列,deutsch不会被增加
 
---------------------------------------------------------------------------------------------------------------------------
INSERT Product;code[unique=true];name[lang=en];name[lang=de]
;myProduct1;myProduct1's localized name;lokalisierter Name von myProduct1 
lang 来指定本地化,就是什么语言。
 
---------------------------------------------------------------------------------------------------------------------------
UPDATE Product;code[unique=true];name[lang=en]
;myProduct1;my product 1
这样修改是不会影响到其他语言的,只会影响到lang=en的
 
4、一对多关系插入
INSERT_UPDATE USER;uid[unique=true];userDescription
;1;1;
 
INSERT_UPDATE OUTLET;code[unique=true];name;outletDescription;product(uid[unique=true])
;12;12;12;1;
;2;2;2;1;
;3;3;3;1;
一对多的话,主要在多表中有一个字段来表示和一表关联,所以只要有一个一表的唯一键来确认对应到那条记录就可以了 product(uid[unique=true])
5、批量处理
REMOVE product[batchmode=true];name[unique=true,lang=zh]
;test
所有name等于test的产品全部删除

IMPEX的更多相关文章

  1. Hybris IMPEX.

    1.Impex是基于java Model的一种面向对象的数据操作手段,因此写impex代码前需要理清java Model之间的依赖关系.   2.基本语法:mode type[modifier=val ...

  2. impex 语法

    impex 语法 2016-01-14 16:23 588人阅读 评论(0) 收藏 举报  分类: hybris(8)  脱离java Model单纯的去看impex文件的代码是不能很好理解impex ...

  3. Hybris商品图片导入与压缩有关的配置

    1.   在电脑上安装 ImageMagick 软件(windows平台还需要安装VC++),下载路径:http://www.imagemagick.org/script/download.php#w ...

  4. Hybris安装和各个Extention简单介绍

    前言:突然想好好梳理一下这几个月所学的内容了,顺便让自己的知识有一个系统的框架. 一.  安装JDK 请安装最新的Oracle JDK 8.0版(从Oracle官网下载). 二.开发工具建议使用 In ...

  5. CronJobs

    一.概念     CronJobs提供了在特定的时间或者间隔内处理业务逻辑的方法.一般创建一个Cronjob有两种方式,第一种是定义Java类,由Hybris生成脚本并加入数据库.第二种是直接编写gr ...

  6. Hybris CronJob.

    一.概念     CronJobs提供了在特定的时间或者间隔内处理业务逻辑的方法.一般创建一个Cronjob有两种方式,第一种是定义Java类,由Hybris生成脚本并加入数据库.第二种是直接编写gr ...

  7. Conjob For hybris

    1.Defining the Job 写conjob的逻辑:core包下当做service层(要继承AbstractJobPerformable<CronJobModel>) public ...

  8. CRM, C4C和Hybris的工作流简介

    CRM的例子 Step by Step to debug IC inbox workflow WS14000164 C4C Custom recipient determination in work ...

  9. CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑

    CRM WebClient UI 把Work center的navigation target在client side不可见:在Chrome development tool里看不到,而是点击了Wor ...

随机推荐

  1. golang 私钥"加密"公钥"解密"

    ---恢复内容开始---   之前工作主要使用C/C++与银行/第三方支付对接,但C/C++无法满足客户"当天给协议明天实盘上载"的开发速度以及现公司一些特殊情况,所以决定用go来 ...

  2. 中国省市区地址三级联动jQuery插件 案例下载

    中国省市区地址三级联动jQuery插件 案例下载 distpicker 是一款可以实现中国省市区地址三级联动jQuery插件.它使用简单,简单设置即可完成中国省市区地址联动效果. 安装 可以通过npm ...

  3. JAVA反射原理

    什么是反射? 反射,一种计算机处理方式.是程序可以访问.检测和修改它本身状态或行为的一种能力.java反射使得我们可以在程序运行时动态加载一个类,动态获取类的基本信息和定义的方法,构造函数,域等.除了 ...

  4. sqlserver 复制表结构(可以含有数据 或 只要表结构)

    sqlserver 复制表结构(可以含有数据 或 只要表结构) SELECT * INTO bb FROM aa(NOLOCK) WHERE 1=0

  5. 微信支付之统一下单--JAVA版

    都说微信支付有些坑,都抱怨微信支付的文档太烂,一会APPId,一会商户id,还有appsecret,支付API秘钥让你傻傻分不清楚,还有这里大写那里小写,几种标准,让你眼花缭乱.没错,这就是很多技术团 ...

  6. H5学习第一周

    已经接触H5一个周了,经过学习,总算对H5有了一些了解和认知,下面就总结一下我对H5的认知和感悟. 首先接触的是H5的常用标签[meta],它有其以下常用属性 1.charset属性.单独使用,设置文 ...

  7. PHP基础入门(五)---PHP面向对象

    前言: 今天来和大家介绍一下PHP的面向对象.说到面向对象,我不得不提一下面向过程,因为本人在初学时,常常分不清楚. 那么面向对象和面向过程有什么区别呢?下面给大家简单介绍一下: 面向对象专注于由哪个 ...

  8. JVM总结之GC

    哪些内存需要回收 在Java堆中存放着几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要知道哪些对象还"存活着",哪些对象已经"死去". 引用计数 ...

  9. asp.net mvc视图中使用entitySet类型数据时提示出错

    asp.net mvc5视图中使用entitySet类型数据时提示以下错误 检查了一下引用,发现已经引用了System.Data.Linq了,可是还是一直提示出错, 后来发现还需要在Views文件夹下 ...

  10. *bzoj1083题解

    题目: 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道 ...