2

我需要获取其datePublished IS NOT "". 但是,下面的代码不起作用。有任何想法吗?谢谢

Query<Diagram> q=ofy.query(Diagram.class).filter("datePublished !=", "").order("-likes").limit(18);
4

1 回答 1

4

在 GAE 数据存储中应用不等式过滤器时,存在一些限制。您可以在此处阅读更多信息:https ://developers.google.com/appengine/docs/java/datastore/queries

在这种情况下,要在 datePublished 上出现不等式,您必须首先在同一字段上排序,然后才能在另一个字段上排序。

所以假设 datePublished 字段被索引:

Query<Diagram> q=ofy.query(Diagram.class).filter("datePublished !=", "").order("datePublished").order("-likes").limit(18);

假设这不是迁移问题,您可能需要考虑在存储数据时对其进行非规范化,例如设置“noDatePublished”布尔值。

于 2013-06-22T06:12:04.790 回答