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(初始化參數) 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章