В AppEngine (JDO), как я могу запросить объект, который требует сортировки по свойству, которое не является частью фильтра неравенства? - PullRequest
0 голосов
/ 31 марта 2011

У меня та же проблема, что и здесь: Неравенство фильтра Appengine и ошибка порядка Т.е. я хочу отсортировать по свойству, которое не является частью фильтра. Например,

" select from " + Post.class.getName() + 
" where createdAt >= :yesterday && " + 
" createdAt <= :now " + 
" order by likes desc ");

Как я могу сделать это эффективно, используя GQL / JDO вместо того, чтобы делать это в памяти? Какие-либо предложения? Я не могу выполнять задания cron или очереди задач с тех пор, как мне пришлось бы запускать это задание cron каждую секунду / миллисекунду, поскольку переменная now теперь равна текущему времени. Любые предложения относительно того, как я могу это сделать? Я все еще не использовал прямой код AppEngine в своем приложении, поэтому я все еще могу переключиться на другую платформу. Любые предложения приветствуются.

1 Ответ

1 голос
/ 31 марта 2011

если вы пытаетесь получить сообщения за один или несколько дней, упорядоченные по лайкам, возможно, у вас может быть поле для каждого сообщения, которое является днем ​​(значение в миллисекундах, округленное до начала дня).тогда, возможно, вы могли бы сделать что-то вроде (при условии, что лайки всегда> = 0):

"select from Post where likes >= 0 && (createdAtDay = :nowDay || createdAtDay = :yesterday) order by likes desc"
...