2012-08-27 54 views
1

我使用RequestFactory從服務器檢索對象列表。現在我想排除可以包含長文本的對象的「description」(String)屬性。如何在GWT中使用RequestFactory時排除屬性

有什麼辦法可以在運行時在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

月有東西等同於'@ transient'註解? –

+1

我需要在運行時排除(編輯我的問題)。與()相反的東西 – outellou

回答

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(); 
} 
+0

基本上,代理中公開的屬性是由RequestFactory檢索的屬性。 – outellou