我正在尝试使用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>
然后正确创建索引并且查询将起作用.
注意:查询仅适用于正确配置索引后添加的行.