我使用RequestFactory从服务器检索对象列表。现在我想排除可以包含长文本的对象的“description”(String)属性。
在运行时的RequestFactory中有没有办法做到这一点?
这就是我检索列表的方法
collectcontextProvider.get().getListObject().fire(
new Receiver<List<ObjectProxy>>() {
@Override
public void onSuccess (List<ObjectProxy> objectList) {
//display the list
}
@Override
public void onFailure(ServerFailure error) {
//Error
}
});
我使用Hibernate
答案 0 :(得分:0)
假设您想在应用程序的其他位置使用描述字段,您将需要一个不公开该属性的精简代理,当然还有一个返回此类代理列表的服务方法。
@ProxyFor(value=MyObject.class, locator=MyLocator.class)
interface MyObjectLiteProxy extends EntityProxy {
// all properties but 'description'
}
@ProxyFor(value=MyObject.class, locator=MyLocator.class)
interface MyObjectProxy extend MyObjectLiteProxy {
String getDescription();
}
@Service(MyService.class)
interface CollectContext extends RequestContext {
Request<List<MyObjectLiteProxy>> getListObjectLite();
Request<List<MyObjectProxy>> getListObject();
}
实际上,您甚至可以更进一步使用相同的MyService
实现2 RequestContext
s:
@Service(MyService.class)
interface CollectLiteContext extends RequestContext {
Request<List<MyObjectLiteProxy>> getListObject();
}
@Service(MyService.class)
interface CollectContext extends RequestContext {
Request<List<MyObjectProxy>> getListObject();
}