我正在尝试评估如何在 CXF 中托管 OData 服务。我基本上对从$filter获取解析树并使用它来获取数据感兴趣。
我的服务堆栈使用 JPA、Hibernate、Spring 和 Oracle DB
另请参阅描述 CXF OData 扩展 http://java.dzone.com/articles/beyond-jax-rs-spec-apache-cxf干杯,谢尔盖
$filter
表达式是一个查询参数,因此它映射到已用@QueryParam
注释的方法参数(指定默认值也非常有用,这样,如果未提供过滤器,该方法仍被使用):
@GET
@Path("{collection}")
@Produces("application/json")
public SomeResultType getCollection(
@PathParam("collection") String collection,
@QueryParam("$filter") @DefaultValue("") String filter) {
// ... Do the filtered query here ...
}