hybris文档笔记

1.items.xml文件的路径是每个extension的resource文件夹,文件命名有规范,core-item.xml
2.item.xml文件是用xsd约束来规范书写的,输入不符合规范的数据会报错
3.item.xml文件中的itemtype的定义是有顺序的,被继承的要往前放
4.两种方式为一个已存在的itemtype新增属性,
第一种是创建一个继承他的子类型,然后为子类型添加属性,子类型的 autocreate 属性必须是true,否则会创建失败;generate属性也必须为true,否则组件不会创建Java class类文件,也就不能使用
getter和setter方法
第二种是:直接为当前itemtype添加属性,这种方式是不被鼓励使用的,需要自己添加getset方法到extension Manager
5.重新定义属性的一些特型,比如设置唯一标识 只读 甚至完全重写等,之后这个属性仅限于子type使用
6.为自定义类型新增列:通过更新hybris来对一个在数据库中已存在的types进行更改是不可行的,列的默认类型是string(MySQL chooses VARCHAR(255)),但是我们可以在*-items.xml中的
<columntype> 标签中设置其他的类型。列的类型也可以按照数据库区分
7.


在hybris系统构建的过程中非常早期的时候Models就已经生成了。




ModelService
ModelService 是处理Model生命周期内的所有操作的service。可以通过modelService 在spring中的ID或者继承 de.hybris.platform.servicelayer.model.ModelService接口得到ModelService。主要任务包含如下几点:


通过PK加载Models
通过item加载Models
新建Models
更新Models
删除Models




type系统
1.types可以管理对象的属性并存储到数据库,生成对应的数据库表结构,还有对应的Java类实现
2.Type = type definition in items.xml + its Java implementation
3.The Item type is the supertype of all types in the hybris Commerce Suite.
4.types和attributes的关系就像Java中的类和属性之间的关系,
5.创建types:1,1.Configured Types = types that are defined in an  items.xml  file.
              2,2.Runtime Types - with no definition in  items.xml ; they are only defined in runtime in hMC.
但是官方不加以使用运行时type的,因为他会在你重启项目时丢失,并切也不会生成Java资源文件
6.AtomicTypes是hybris最基本的类型,它就像Java中的number和string类型。
7.CollectionType 可以包含多种数据类型,可以是item中的type也可以是其他的CollectionTypes
8.创建某个item时可以直接调用构造器方法,也可以使用Composed Type的newInstance( ... ) 方法(必须传入初始化参数,否则会报异常)
Map params = new HashMap();
params.put( HelloWorldWizardCronJob.SCREENTEXT, getScreenText() );
params.put( HelloWorldWizardCronJob.ACTIVATE, isActivate() );
params.put( HelloWorldWizardCronJob.INTERVAL, getInterval() );


 ComposedType item = getSession().getTypeManager().getComposedType( "mySampleItem" );
      return (MySampleItem) item.newInstance( ctx, params(初始化参数) 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章