1

odata4j AppEngineConsumerExample演示了如何使用类似于以下代码的字符串和数值过滤实体:

reportEntity("\nNon-discontinued product with reorderLevel > 25 (two filter predicates): " , 
            c.getEntities("Product")
            .filter("reorderLevel gt 25 and discontinued eq false")
            .top(1)
            .execute().first());

我对 Java 还很陌生(我的背景是 .NET/C#),但上面说的是有道理的。但是,我不确定如何为日期做类似的事情。来自我的 WCF OData 服务的日期格式为“yyyy-MM-dd'T'HH:mm:ss”。

在此先感谢您的帮助!

4

1 回答 1

2

事实证明,这是 OData 本身的功能,而不是 odata4j。传递给 odata4j 中过滤器函数的字符串与通过 URL 传递的表达式相同。我在Netflix OData 目录页面上找到了大量过滤器示例。

要过滤日期,请使用以下内容:

reportEntity("\nProduct with order date greater than March 1, 2010: " , 
        c.getEntities("Product")
        .filter("OrderDate gt datetime'2010-03-01'")
        .top(1)
        .execute().first());
于 2010-09-22T15:18:41.443 回答