在ofbiz中對實體的訪問(資料庫)是通過delegate物件來進行的,而delegate物件是genericdelegator類的乙個例項,他包含有關實體操作的方法和屬性。
l在jsp中使用 l
在severlet或event中使用
genericdelegatordelegator=(genericdelegator)request.getattribute("delegator");
l通過乙個已知的數值物件獲取delegator,方法為
genericdelegatordelegator=userlogin.getdelegator();
l手工建立
genericdelegatordelegator=genericdelegator.getgenericdelegator("default")
1)以delegate物件進行資料訪問 l
插入使用create方法,在插入之前一般要用makevalue方法,建立乙個數值物件,然後進行插入,典型的語句為
genericvaluepartyrole=delegator.makevalue("partyrole",utilmisc.tomap("partyid",partyid,"roletypeid",context.get("roletypeid")));
partyrole.create();
l刪除remove方法,remove一般的用法為
partyrole=delegator.findbyprimarykey("partyrole",utilmisc.tomap("partyid",partyid,"roletypeid",context.get("roletypeid")));
partyrole.remove();
l使用store方法,包括(store和storeall)典型的語句為
delegator.storeall(storeall);
store儲存乙個數值物件,而storeall儲存用list組織起來的一組數值物件。
storeall的用法說明:
-----------------------------------
通過findbyprimarykey在乙個實體中查詢出符合條件的一條數值物件
genericvalue orderheader = delegator.findbyprimarykey
("orderheader", utilmisc.tomap("orderid", orderid));
對數值物件中的某個值進行修改
orderheader.set("statusid", statusid);
建立另外乙個不同實體的數值物件(當然也可以採用相同的實體)。
changefields.put("orderstatusid",
delegator.getnextseqid("orderstatus").tostring());
changefields.put("statusid", statusid);
changefields.put("orderid", orderid);
changefields.put("orderitemseqid", orderitem.getstring("orderitemseqid"));
changefields.put("statusdatetime", utildatetime.nowtimestamp());
genericvalue orderstatus = delegator.makevalue("orderstatus", changefields);
使用setpkfields ,setnonpkfields建立乙個數值物件
roletype = delegator.makevalue("roletype", null);
roletype.setpkfields(context);
roletype.setnonpkfields(context);
roletype = delegator.create(roletype);
將數值物件,放到list中
list tobestored = new arraylist();
tobestored.add(orderheader);
tobestored.add(orderstatus);
將數值物件,儲存到資料實體中
delegator.storeall(tobestored);
-----------------------------------------
l查詢使用find方法,包括findall、findallbyprimarykeys、findbyand,findbycondition、findbylike、findbyor、findbyprimarykey、findlistiteratorbycondition
l依據某數值物件的關係,查詢關聯資訊,可以使用getrelated方法。包括getrelated、getrelatedbyand、getrelateddummypk、getrelatedone、getrelatedorderby
2)依據數值物件進行訪問
在現有的數值物件上可以進行下列操作, l
根據關係查詢關聯資訊getrelated,包括getrelated、getrelatedbyand、getrelateddummypk、getrelatedmulti、getrelatedorderby。 l
重新整理本數值物件refresh
l儲存本數值物件store,主要用於修改後的儲存 l
刪除數值物件remove,包括刪除本數值物件remove和刪除某個關聯的數值物件removerelated
在現有數值物件上的操作是通過呼叫
OFBIZ分享 庫存
在catalog中發布新商品後,可以通過商品編輯頁面的 庫存 來檢視商品的庫存,也可以在此時接收庫存。接收庫存後,就可以在庫存明細中檢視該商品的庫存資訊了。商品在商店中被下單購買後,庫存會自動減少。比如庫存中有10件商品,那麼購買1件後,會自動變為9件。退貨,當訂單完成後,使用者可以在前台提出退貨的...
OpenMP 程式設計指南
2 openmp並行程式設計 二 1 fork join並行執行模式的概念 2 openmp指令和庫函式介紹 3 parallel 指令的用法 4 for指令的使用方法 5 sections和section指令的用法。閱讀全文 3 openmp中的資料處理子句 本文主要介紹了openmp中的priv...
Core Image程式設計指南
1.cifilter 乙個可變的物件代表乙個影響。乙個濾波物件至少有乙個輸入引數並且產生乙個輸出。3.cicontext coreimage通過這個物件將濾波產生的結果畫出來。乙個core image上下文可以基於cpu或者是gpu。overview 使用core image時需要在專案中加入框架c...