子项和返回父项的 OData 过滤器

标签 odata olingo

我正在开发一个由 OData 服务提供支持的搜索功能。它将返回一个或一列标题对象作为结果。 我们需要搜索的许多字段不在标题对象中。它们仅在子对象(导航属性)中。 能够针对子字段执行 OData 搜索并仍然返回父对象列表的正确方法是什么。

这类似于我希望在标准 SQL 中作为“存在”查询能够执行的操作。

我正在为我的项目使用 Java - Apache Olingo,但我认为这是一个一般的 OData 问题。

最佳答案

是的,这是完全可能的,只需在 $filter 中包含子路径

例如假设我们有一个标题 Aircraft 和子 Airline

/Aircraft 将列出所有航空公司的所有飞机 Aircraft?$filter=Airline/Code eq 'BA' 将仅列出 BA 的所有飞机

对于您的第二个查询,返回子项并过滤父项... 不确定是否只返回 child - 如果你通过它的键解决单亲,你可以这样做, 例如 Aircraft(123)/Airline - 将找到键为 123 的 Aircraft 并仅返回航空公司子导航属性信息

要过滤并包含多个 header ,那么我认为您唯一的选择是使用 $expand 将子信息包含在 header 信息中。 例如

Aircraft?$filter=BodyType eq 'NB'&$expand=航空公司 - 所以这会过滤 NB 类型(窄体)上的头部飞机,并包括子航空公司信息。

希望这对您有所帮助。

关于子项和返回父项的 OData 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30648280/

相关文章:

asp.net-web-api - 将WCF数据服务OData提供程序转换为Web API的最简单方法是什么?

entity-framework - 如何将针对 DTO 的 OData 查询映射到 EF 实体?

java - Olingo4 向后兼容吗?

java - 如何向 ODataClient (Apache Olingo) 添加 header ?

java - 使用 JSON for OData 时不会返回导航链接(使用 Apache Olingo for Java)

odata - 如何在 Olingo OData 服务文档中包含完整的元数据 URI?

javascript - 尝试与 odata 响应绑定(bind)时,Nan 正在 json 模型中设置

odata - 在 Web API 2.2 上将 $select 和 $expand 与 Odata v4.0 一起使用时出错

java - 使用 Apache Olingo 将 OData 对象反序列化为 Java 对象

java - 如何在 Olingo 中向元模型添加自定义属性?