2015-01-13 17 views
1

我想按照標準機制使用CXF來解析FIQL。但是,我不想使用JAXB編碼的對象,而是使用自定義數據字典源。這裏的「正常」的方式爲例:用於FIQL的Apache CXF SearchContext與自定義數據字典

@Path("book") 
@GET 
public List<Book> findBooks(@Context SearchContext searchContext) { 
    SearchCondition<Book> condition = searchContext.getCondition(Book.class); 
    return condition.findAll(theBooks); 
} 

在這裏,如果我的理解是正確的,書一定是一個Java bean,與對應於搜索表達式元素的各個屬性。所以,如果我有:

public class Book { 
    String title; 
    String asin; 
} 

我可以做喜歡的查詢:

GET /book?_s=asin==B00NAIMGXI 

,並返回匹配的行。這很好,但我不能像Book一樣創建單獨的Bean類。事實上,我有一個大的動態數據字典(DBSchema),我希望能夠對該模式中的任何內容進行查詢。不過,我找不到任何方法。

回答

0

花一些時間與源代碼,我發現,如果你通過一個名爲SearchBean類,像這樣經過:

SearchCondition<SearchBean> searchCondition = searchContext.getCondition(SearchBean.class); 

您FIQL表達可以有任意的名字。我不知道這個功能有多官方 - 它不在JAX-RS指南中,但它確實出現在this jira issue CXF-4314,所以我猜(希望?)它是CXF公共接口的一部分。

+0

D'oh。原來,這是在文檔中提到的,我錯過了它。 – fool4jesus