您能告诉我如何使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界面中,我有method Request<OrganizationProxy> findOrganizationById(long id)。从数据存储区获取真实组织的DAO类设置其contactPerson字段,但在客户端中始终为null。实际上,RequestFactory甚至从不调用Organization.getContactPerson()。
RequestContext
Request<OrganizationProxy> findOrganizationById(long id)
contactPerson
null
我的客户电话看起来像这样
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。
查询服务器时,RequestFactory不会自动在对象图中填充关系。为此,请在请求上使用with()方法,并将相关属性名称指定为String