2010-09-16 6 views
1

Le odata4j AppEngineConsumerExample montre comment filtrer les entités sur chaîne et des valeurs numériques avec un code similaire à ce qui suit:Comment filtrer les entités par plage de dates dans odata4j?

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()); 

Je suis assez nouveau pour Java (mon arrière-plan est .NET/C#), mais les marques ci-dessus sens. Cependant, je ne sais pas comment faire quelque chose de similaire pour les dates. Les dates provenant de mon service OData WCF sont au format "aaaa-MM-jj'H'HH: mm: ss".

Merci d'avance pour votre aide!

Répondre

2

Il s'avère que c'est une fonction de OData elle-même plutôt que odata4j. La chaîne transmise à la fonction de filtre dans odata4j est la même que celle qui serait transmise via une URL. J'ai trouvé des tonnes d'exemples de filtres sur le Netflix OData Catalog page.

Pour filtrer les dates, utilisez quelque chose comme ceci:

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

Je suis heureux de vous entendre obtenu ce travail. On dirait qu'une syntaxe pour fournir des paramètres littéraux aurait été utile ici. Ou un API de constructeur de requête. Qu'est-ce que tu penses? –

Questions connexes