2013-04-22 84 views
1

上午有點自命不凡由以下三個問題:RequestFactory DIFF計算和「靜態」 find方法

1)我看到,DIFF在AutoBeanUtils's diff法計算。我在比較中使用的實體中看到一個名爲parentObject的標記來計算diff。

parent = proxyBean.getTag(Constants.PARENT_OBJECT); in AbstractRequestContext class。

這是否意味着對於加載到瀏覽器的給定實體有兩個副本?如果我的實體實際大小是1kb,實際加載的數據將是2kb(因爲實體的兩個副本正在加載到瀏覽器中)?

2)在服務器端:

想我必須從數據庫中獲取的實體,該static find<EntityName>應該是這樣的,我必須作出每次分貝的呼叫,或者是有沒有辦法在那裏我可以微調那個行爲? [對不起,我沒有很好地理解locator的概念。]

3)如果在客戶端發送差異時服務器端發生崩潰(出於任何原因不需要當前請求特定)會發生什麼?

非常感謝。

回答

1
  1. 當你.edit()代理,它使一個副本,並存儲你的說法是返回的代理的PARENT_OBJECT通過了一成不變的代理。

  2. 你通常做一個數據庫調用每一個方法被調用的時候(這是一個Locatorfind()方法相同),這將是不超過每個請求的兩倍多。如果您需要,您可以使用某種緩存,但是如果您使用JPA或JDO,則會爲您照顧(您必須使用會話請求模式,也稱爲OpenSessionInView)

  3. 如果有任何錯誤在對請求進行解碼時,將返回全局錯誤,該請求將針對失敗的RequestContext請求傳遞給所有ReceiveronFailure

https://code.google.com/p/google-web-toolkit/wiki/RequestFactoryMovingParts#Flow