Как отфильтровать объекты по диапазону дат в odata4j? - PullRequest
1 голос
/ 16 сентября 2010

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 #), но вышесказанное имеет смысл.Тем не менее, я не уверен, как сделать что-то подобное для свиданий.Даты, поступающие из моей службы OData в WCF, имеют формат «гггг-мм-дд'т'чч: мм: сс».

Заранее благодарен за помощь!

1 Ответ

2 голосов
/ 22 сентября 2010

Оказывается, это функция 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());
...