0

私はここで立ち往生 !任意の助けをいただければ幸いです。

私の場合、モジュールに @OneToMany 関連付けがあります。

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

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

私が望むクライアント側では、オブジェクトマップ全体を取得します。

私はこれを行います(DataGridを表示するAsyncDataProvider):

 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);
                }
            });

私のDAOは、マップ全体を照会するだけです。

 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;

しかし、私は子供を得ることができません。それらのリストは null です。with("children") を使用していることに注意してください

ありがとうございました。

4

1 に答える 1

0

RequestContext.getParents() は CallbackProxy を返すようですが、親は返しません。したがって、with 句は「parents.childs」のようになります。

ところで、彼らを「子供」と呼んでみませんか?念のため、GWT 担当者はある日、文法チェッカーを追加します :-)

于 2012-04-18T06:21:23.973 に答える