Java 在AppEngine(JDO)中,如何查询需要按不属于不等式过滤器的属性进行排序的实体?

Java 在AppEngine(JDO)中,如何查询需要按不属于不等式过滤器的属性进行排序的实体?,java,google-app-engine,sorting,filter,jdo,Java,Google App Engine,Sorting,Filter,Jdo,我遇到了与这里提到的相同的问题:即,我想按不属于筛选器的属性进行排序。例如 " select from " + Post.class.getName() + " where createdAt >= :yesterday && " + " createdAt <= :now " + " order by likes desc "); 如何使用GQL/JDO而不是在内存中高效地完成这项工作?有什么建议吗?我无法执行cron作业或任务队列,因为now变量等于当前时

我遇到了与这里提到的相同的问题:即,我想按不属于筛选器的属性进行排序。例如

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

如何使用GQL/JDO而不是在内存中高效地完成这项工作?有什么建议吗?我无法执行cron作业或任务队列,因为now变量等于当前时间,因此我必须每秒/毫秒运行一次cron作业。有没有关于我如何做到这一点的建议?我还没有在我的应用程序中使用direct AppEngine代码,所以我仍然可以切换到另一个平台。欢迎提出任何建议

如果您试图获取一天或几天的帖子,按照喜好排序,可能您可以在每个帖子上都有一个字段,该字段是一天的毫秒值,四舍五入到一天的开始。然后,也许你可以做一些事情,比如假设喜欢总是>=0:

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