ofbiz程式設計指南

2021-08-22 09:46:30 字數 2793 閱讀 6214

在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...