我想使用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),我希望能够对该模式中的任何内容进行查询。但是,我找不到任何办法。
答案 0 :(得分:0)
在使用源代码花了一些时间之后,我发现如果你传递一个名为SearchBean的类,就像这样:
SearchCondition<SearchBean> searchCondition = searchContext.getCondition(SearchBean.class);
您的FIQL表达式可以包含任意名称。我不知道这个功能的正式性 - 它不在JAX-RS指南中,但确实出现在this jira issue CXF-4314中,所以我猜测(希望?)它&# 39;考虑到CXF公共界面的一部分。