2012-11-13 70 views
0

您好,我只是爲我的GWT項目設置了RequestFactory。它工作得很好,但我不能讓一個對象 的對象字段我有一個BuslineProxy和總線代理使用with()子句獲取對象RequestFactory GWT

buslineContext.findAll().with("buses").fire(new Receiver<List<BuslineProxy>>() { 

    @Override 
    public void onSuccess(List<BuslineProxy> response) { 

     String requestedData=""; 
     for (BuslineProxy busline : response) 
     { 
      requestedData+="Busline " +busline.getName() +" with id " + busline.getId()+"\n"; 
      for(BusProxy bus : busline.getBuses()) 
      { 
       requestedData+=bus.getId()+"\n"; 
      } 
     } 
     Window.alert(requestedData); 
    } 
}); 

我的服務器對象乘車路線有一個名爲總線列表字段。我想我只是簡單地把我想要訪問的字段放在with子句中。 它雖然不工作,我只能得到所有的巴士線,但他們的巴士列表是空的。 感謝您的幫助。

回答

0

弗洛朗是正確的,數據是空的,由於一個小錯誤。 更大的問題是實體代理總線沒有默認構造函數和靜態findAll方法,即使它不會直接實例化。 構造函數爲空,findAll方法返回null,但RequestFactory仍然需要它們!

1

當GWT序列化對象時,你確定服務器上的總線不爲空嗎?

如果數據不在這裏(除非您使用的是代理機制和OpenSessionInViewFilter或類似的東西),否則GWT不會執行數據庫查詢本身。