2012-02-27 2 views
1

RequestFactoryでエンティティプロキシのフィールドも入力することができますか教えてください。あなたはそれをフィールドとして別のプロキシが含まれて見ることができるようにここでRequestFactoryが自分のエンティティプロキシのすべてのフィールドに値を設定しない

は親プロキシ

@ProxyFor(value = Organization.class, locator = PojoLocator.class) 
public interface OrganizationProxy extends EntityProxy 
{ 
    public String getName(); 
    public void setName(String name); 
    public String getAddress(); 
    public void setAddress(String address); 
    public PersonProxy getContactPerson(); 
    public void setContactPerson(PersonProxy contactPerson); 
} 

です。 PersonProxyが、私は方法Request<OrganizationProxy> findOrganizationById(long id)を持っている私のRequestContextインタフェースで

@ProxyFor(value = Person.class, locator = PojoLocator.class) 
public interface PersonProxy extends EntityProxy 
{ 
    public String getName(); 
    public void setName(String name); 
    public String getPhoneNumber(); 
    public void setPhoneNumber(String phoneNumber); 
    public String getEmail(); 
    public void setEmail(String email); 
    public OrganizationProxy getOrganization(); 
    public void setOrganization(OrganizationProxy organization); 
} 

どのように見えるかをここにあります。実際の組織をデータストアからフェッチするDAOクラスは、contactPersonフィールドを設定しますが、クライアントでは常にnullです。実際、RequestFactoryはOrganization.getContactPerson()を呼び出すことさえありません。私のクライアントの呼び出しがこの

createFactory().contextOrder().findOrganizationById(1).fire(new Receiver<OrganizationProxy>() 
{ 
    @Override 
    public void onSuccess(OrganizationProxy response) 
    { 
     if (response == null) 
     { 
      organizationProxy = orderRequestContext.create(OrganizationProxy.class); 
      organizationProxy.setContactPerson(orderRequestContext.create(PersonProxy.class)); 
     } else 
      organizationProxy = orderRequestContext.edit(response); 

     // Copy the data in the object into the UI 
     driver.edit(organizationProxy); 
    } 

    @Override 
    public void onFailure(ServerFailure error) 
    { 
     createConfirmationDialogBox(error.getMessage()).center(); 
    } 
}); 

のように見えます

私はここで何をしないのですか?手動でどこかで何かしなければならないのですか? RequestFactoryはグラフ全体に値を設定するのではないですか?

答えて

2

申し訳ありませんが、私は答えを見つけました。私はRTFMを持っているはずです。

サーバーにクエリするとき、RequestFactoryは自動的にオブジェクトグラフ内にリレーションを作成しません。これを行うには、リクエストにwith() メソッドを使用し、関連するプロパティ名をStringとして指定します。

関連する問題