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”。
提前感谢您的帮助!
答案 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());