2011-11-10 102 views
1

GWT RequestFactory是好的,同時節省/更新數據,使用如下:GWT requestFactory搜索

EmployeeRequest request = requestFactory.employeeRequest(); 
EmployeeProxy newEmployee = request.create(EmployeeProxy.class); 
newEmployee.setName("Joe!"); 

Request<Void> createReq = request.persist().using(newEmployee); 
createReq.fire(); 

,我們使用刪除,而不是堅持刪除。

那麼如何使用RequestFactory進行搜索。假設我的域對象是名稱爲Employee的員工,請登錄&地址。所有這三個字段對於搜索都是可選的,我們可以使用RequestFactory來實現嗎?或者我們應該使用RPC?

問候

回答

1

使用你的榜樣,你可以找到用戶使用RequestFactory這樣的:

request.employeeRequest().find(newEmployee).with("name", "login", "address"); 
+0

name,login&address是實體'Employee'的字段。您可以請關於如何在RequestFactory或Domain中完成這項工作的情況。如果我沒有錯,你會傳遞newEmployee的三個字段值。 – user237865

+0

你是對的,沒有注意到'setName()' - 如果跳過該行並使用EmployeeProxy(例如一個新的[空]對象),你將檢索一個匹配任何/所有這些字段的Employee。因此'request.employeeRequest()。find(newEmployee).with(...)'會讓你成爲你請求的(單數)員工。另一方面,如果您搜索的內容比您在RequestContext接口中實現'findAny(...)'多。 如果由於某種原因,實體不能使用find(..),你需要創建一個實現'Locator'的類。 –

1

你可以在幾個方面,非常相似,你怎麼會跟GWT-RPC做到這一點做:

  • request.findEmployees(optionalName, optionalLogin, optionalAddress).fire(new Receiver<List<EmployeeProxy>>() { … })
  • EmployeeSearchProxy search = request.create(EmployeeSearchProxy.class);
    search.setName(optionalName);
    search.setLogin(optionalLogin);
    search.setAddress(optionalAddress);
    request.findEmployees(search).fire(new Receiver<List<EmployeeProxy>>() { … })