2012-04-16 71 views
0

Iam卡在這裏!任何幫助,將不勝感激。RequestFactory和@OneToMany協會

我的情況是,我有我的模塊@OneToMany關聯。

class Parent{ 
    @OneToMany(
     mappedBy="parent" 
    ) 
    return List<Child> getChildren(); 
} 

class Child{ 
    @ManyToOne 
    return Parent getParent(); 
} 

在客戶端我想得到整個對象映射。

我這樣做(AsyncDataProvider有一個DataGrid作爲顯示):

requestContext.getParents().with("children").fire(new Receiver<CallbackProxy>() { 
       @Override 
       public void onSuccess(CallbackProxy response) { 
        display.setRowData(range.getStart(),response.getParents()); 
        updateRowCount(response.getCount().intValue(), true); 
       } 
      }); 

吾道它只是查詢全圖。

Criteria criteria = session.createCriteria(Parent.class); 
criteria.setFetchMode("children", FetchMode.JOIN); 
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 

/* we got all the map here on the server side */  

Callback callback = new Callback(); 
callback.setCount(count); 
callback.setParents(criteria.list()); 

return callback; 

但我不能得到孩子。它們的列表爲空。請注意iam使用(「兒童」)

謝謝。

+0

我的問題是我將我的結果包裝到一個ValueProxy中,似乎用(「」)尋找結果代理中的屬性。 – 2012-04-16 19:58:18

回答

0

RequestContext.getParents()似乎返回CallbackProxy,但不是Parent。所以with子句應該看起來像「parents.childs」。

順便說一句,爲什麼不稱他們爲「孩子」? GWT的人添加一個語法檢查一天的情況下:-)

+0

呵呵;)我只是用隨機名作爲例子。抱歉 – 2012-04-19 19:40:25