用于FIQL的Apache CXF SearchContext,带有自定义数据字典

时间:2015-01-13 15:11:21

标签: apache cxf

我想使用CXF按照标准机制解析FIQL。但是,我不想使用JAXB编码的对象,而是使用自定义数据字典源。以下是“正常”方式的示例:

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

在这里,如果我的理解是正确的,Book必须是一个java bean,其中的各个属性对应于搜索表达式元素。如果我有:

public class Book {
  String title;
  String asin;
}

我可以进行如下查询:

GET /book?_s=asin==B00NAIMGXI

并返回匹配的行。这很好,但是我不能像Book那样创建单独的bean类。事实上,我有一个大型动态数据字典(DBSchema),我希望能够对该模式中的任何内容进行查询。但是,我找不到任何办法。

1 个答案:

答案 0 :(得分:0)

在使用源代码花了一些时间之后,我发现如果你传递一个名为SearchBean的类,就像这样:

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

您的FIQL表达式可以包含任意名称。我不知道这个功能的正式性 - 它不在JAX-RS指南中,但确实出现在this jira issue CXF-4314中,所以我猜测(希望?)它&# 39;考虑到CXF公共界面的一部分。