我需要获取datePublished IS NOT ""
的项目列表。但是,下面的代码不起作用。有任何想法吗?感谢
Query<Diagram> q=ofy.query(Diagram.class).filter("datePublished !=", "").order("-likes").limit(18);
答案 0 :(得分: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'布尔值。