如何在odata4j中按日期范围过滤实体?

时间:2010-09-16 04:49:43

标签: java odata odata4j

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”。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

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

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

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