Hybris IMPEX

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的产品全部删除

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JAVA高级架构

面试中单例模式有几种写法

“你知道茴香豆的‘茴’字有几种写法吗?” 纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style...

2936
来自专栏IT可乐

Java设计模式之(一)------单例模式

1、什么是单例模式?   采取一定的办法保证在整个软件系统中,单例模式确保对于某个类只能存在一个实例。有如下三个特点:   ①、单例类只能有一个实例   ②、单...

2227
来自专栏chenssy

【死磕Sharding-jdbc】---group by结果合并(2)

在sharding-jdbc源码之group by结果合并(1)中主要分析了sharding-jdbc如何在GroupByStreamResultSetMerg...

1032
来自专栏应兆康的专栏

Python Web - Flask笔记5

MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。你可以用MySQL Wor...

1801
来自专栏鸿的学习笔记

sql解析的一些计划

关于sql解析的一些概述: 因为最近在研究如何将oracle的sql语句迁移到hive上去,前期是准备写一些udf函数去弥补hive缺失oracle函数...

882
来自专栏xingoo, 一个梦想做发明家的程序员

Lucene查询语法详解

Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询。 下面着重介绍下Lucene支持的查询: Te...

5339
来自专栏java 成神之路

多线程并发下的单例模式

4457
来自专栏PHP在线

帮助你认识PHP的特点与发展

写在前面的话:之前做的一个项目,数据库及系统整体构架设计完成之后,和弟兄们经过一段时间的编码,系统如期上线,刚开始运行一切良好,后来随着数 据量的急剧膨胀,慢慢...

2913
来自专栏杨建荣的学习笔记

MySQL中需要注意的字段长度问题

在MySQL的表结构设计中,突然想起来几个地方碰到的问题比较多,大体来说一个就是字符集,一个就是数据类型。 而字符集和数据类型结合起来,就有一个蛮有意思的细节,...

4066
来自专栏AhDung

【SQL】小心字符串拼接导致长度爆表

别想当然以为它会返回8002,而是8000,select @max也只会得到8000个a,后面两个b没了。我们知道,varchar(max)类型不受字符数限制,...

1753

扫码关注云+社区

领取腾讯云代金券