是否可以限制或过滤oData V2中的扩展项?

是否可以限制或过滤oData V2中的扩展项?,odata,olingo,Odata,Olingo,我用olingo V2和spring boot制作了一个oData服务器 如果我打这样的电话: http://localhost:9090/odata.svc/FormSet?$expand=Questions&$filter=Questions/Deleted eq false 这将返回至少有一个问题的所有表单,其已删除的属性为false 但是,我想要所有表格的列表,以及所有尚未删除的问题的列表。但此查询将返回属于表单的所有问题 从逻辑上讲,这是正确的。因为我请求的是表单列表而不是问

我用olingo V2和spring boot制作了一个oData服务器

如果我打这样的电话:

http://localhost:9090/odata.svc/FormSet?$expand=Questions&$filter=Questions/Deleted eq false
这将返回至少有一个
问题的所有
表单
,其
已删除的
属性为
false

但是,我想要所有表格的列表,以及所有尚未删除的问题的列表。但此查询将返回属于表单的所有问题

从逻辑上讲,这是正确的。因为我请求的是表单列表而不是问题列表,因此,过滤器是根据表单而不是扩展实体进行评估的!而过滤器对父实体有影响

现在假设我有一个表单,它的所有问题都被删除,并且它们的
deleted
标志已经设置为true!然后,此查询不会将该表单返回给我。为什么?因为它没有任何关于
Deleted
标志
false
的问题

我为什么需要它?我想减少通话次数

假设我有一个瓷砖列表。每个互动程序显示其未删除问题的形式和数量!例如,如果我有一个名为
设备表
的表格,其中有4个问题已被删除,我必须显示如下内容:

http://localhost:9090/odata.svc/FormSet?$expand=Questions&$filter=Questions/Deleted eq false

然而,目前它显示4是错误的,我希望看到3

是否有任何方法可以对展开的元素进行过滤,从而过滤展开的元素而不应用于父元素

请注意,我不是在寻找编程解决方案,我更想知道oData过滤语法是否有任何可能性

也许有用