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

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

最佳答案

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

在这种情况下,要使datePublish不等式,必须首先在同一字段上订购,然后才能在另一个字段上订购。

因此,假设datePublished字段已建立索引:

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


假设这与迁移无关,那么在存储数据时,您可能需要考虑对其进行规范化处理,例如设置“ noDatePublished”布尔值。

07-26 02:46