2012-11-15 45 views
1

何時適合在Websphere中使用數據bean或訪問bean?如果我提出基本問題,我很抱歉,我是Websphere的新手。何時在Websphere Commerce中使用訪問bean或數據bean?

在我的情況下,我試圖按產品查找目錄列表。最初我一直在使用訪問bean。這有效,但它有時會返回非常大的結果集/看起來非常耗費內存。

CatalogEntryDescriptionAccessBean cedabp = new CatalogEntryDescriptionAccessBean(); 
Enumeration cde = cedabp.findByCatalogEntry(productCatIdLong); 

的數據bean提供了相同的方法:

CatalogEntryDescriptionDataBean cedabp = new CatalogEntryDescriptionDataBean(); 
Enumeration cde = cedabp.findByCatalogEntry(productCatIdLong); 

爲什麼要使用一個豆比其他?更適合閱讀或寫作數據嗎?數據是由一個緩存/比另一個更新?

更新:

我發現這兩個類有如下關係:

CatalogEntryDescriptionAccessBean 
|_ CachedCatalogEntryDescriptionAccessBean 
    |_ CompactCatalogEntryDescriptionAccessBean 
    |_ CatalogEntryDescriptionDataBeanBase 
     |_ CatalogEntryDescriptionDataBean 

所以數據bean從訪問bean繼承,因此爲什麼它包含相同的可見的方法。

有趣的是,IBM的文檔指出:

訪問bean提供...的 主對象的緩存,並降低呼叫業務的企業bean。使用訪問bean具有額外 優點:

在運行時,訪問bean緩存的企業bean home對象 因爲看UPS的主對象是昂貴的,在時間 和資源使用方面。訪問Bean實現了一個copyHelper對象 ,該命令在命令 獲取和設置企業bean屬性時減少了對企業bean的調用次數。在讀取或寫入多個 企業bean屬性時,只需要調用 企業bean。

目前,我對數據Bean服務的目的感到困惑,如果Access Bean使用CMP來減少對實體Bean的調用?

我找到了一些狀態的詳細資料:

數據bean是一個Java bean是在JSP頁面檢索來自企業Bean 信息。一個簡單的數據bean擴展了其相應的訪問bean並實現了SmartDataBean接口。 通過擴展訪問bean,數據bean提供了一個實體bean的簡單 表示(間接):它封裝了可以從實體bean中檢索或設置的 屬性。

回答

1

DataBean的實現比AccessBean更緩存,因此有可能減少對數據庫的調用。

DataBean適用於組成站點/ Web應用程序的JSP頁面,因爲實例數可能很少,應該有助於控制數據庫事務的數量。

AccessBean的是更少的內存密集型的,所以可以適當多循環過程等

您通常希望找到AccessBean在後端的WebSphere命令和報告等

1

通常使用你可以將數據bean與wcbase:useBean標記一起使用來設置數據bean的屬性,並且標記將調用填充方法。這基本上抽象了來自JSP的訪問bean/EJB的實例化過程。除此之外,Access bean與數據bean的功能值類似。我在jsps中的命令和數據bean中使用訪問bean。