您能否告诉我如何让 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 的样子
@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);
}
在我的RequestContext
界面我有方法Request<OrganizationProxy> findOrganizationById(long id)
。从数据存储中获取真实组织的 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 不是应该填充整个图表吗?
最佳答案
抱歉,但我找到了答案。我应该有 RTFM。
When querying the server, RequestFactory does not automatically populate relations in the object graph. To do this, use the with() method on a request and specify the related property name as a String
关于java - RequestFactory 没有填充我的实体代理的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9459589/