google-app-engine – 向Objectify查询添加排序会导致空结果

我正在尝试使用App Engine,Datastore和Objectify 4.我有一个工作的Objectify查询,它从数据存储区中获取给定类型的所有实体.我正在尝试根据日期对结果进行排序:

List<MyEntity> entities = OfyService.ofy().load().type(MyEntity.class).order("-createdDate").list();

但是在我添加订单后,查询返回0条记录.这是我的实体类:

@Entity
public class MyEntity
{   
    @Id Long id;
    Long userID;
    @Ignore String username;
    @Index String name;
    String url;
    String description;
    @Index Date createdDate;
    @Index int viewCount;
}

我试图通过其他数据类型订购但没有成功.为什么会这样?

最佳答案 我们需要在WEB-INF / datastore-indexes.xml中手动定义索引.

<?xml version="1.0" encoding="utf-8"?>
<datastore-indexes
  autoGenerate="true">
    <datastore-index kind="AppMedia" ancestor="false">
        <property name="createdDate" direction="desc" />
    </datastore-index>
</datastore-indexes>

然后正确创建索引并且查询将起作用.
注意:查询仅适用于正确配置索引后添加的行.

点赞