Search code examples
javagoogle-app-enginefiltergoogle-cloud-datastorejava.util.date

Google App Engine, JDO, use Date in filter


In my application, I would like to fetch a set of entities from the Datastore, that have a Date field set to a date before the present moment.

I do realize, that one of the ways of doing that is by simply storing the date in those entities as just a long value in milliseconds.

But ist there actually a way of storing them as Dates and being able to use them for filtering?

I tried something like query.setFilter("dateField.before(dateParam)"); , but it didnt work, neither did the simple comparison.

Thanks in advance.


Solution

  • Simply declare the dateField as java.util.Date, then use

    query.setFilter("dateField < dateParam");
    query.declareParameters("java.util.Date dateParam");
    List<...> results = (List<...>) query.execute(new java.util.Date());
    

    See examples here: http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html