• 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的产品全部删除 
  • 相关阅读:
    我对JavaWeb中中文URL编码的简单总结
    URL的编码和解码
    Maven警告解决:Using platform encoding (UTF-8 actually)
    JavaWeb编码浅解
    pageContext对象的用法详述
    JspSmartUpload 简略使用
    Web开发相关笔记 #05# MySQL中文无法匹配
    Web开发相关笔记 #04# WebSocket
    Eloquent JavaScript #02# program_structure
    Eloquent JavaScript #01# values
  • 原文地址:https://www.cnblogs.com/jmcui/p/7296153.html
Copyright © 2020-2023  润新知