Google App Engine, JDO, использовать дату в фильтре - PullRequest
2 голосов
/ 30 августа 2010

В моем приложении я хотел бы получить набор сущностей из хранилища данных, у которых в поле Дата установлено значение даты до настоящего момента.

Я понимаю, что один из способов сделать это - просто сохранить дату в этих объектах как значение long в миллисекундах.

Но есть ли способ сохранить их как Date с и использовать их для фильтрации?

Я пробовал что-то вроде query.setFilter("dateField.before(dateParam)"); , но это не сработало, как и простое сравнение.

Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 30 августа 2010

Просто объявите dateField как java.util.Date, затем используйте

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

См. Примеры здесь: http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html

1 голос
/ 21 января 2011

Решения Константина дают:

Оператор <нельзя использовать как часть условия соединения. </p>

Добавление двоеточия перед именем параметра заставило его работать на меня:

q.setFilter("createdTime < :nowTime");
List<...> result = (List<...>) q.execute(new java.util.Date());
...