我有一个名为 MyFile
的GAE实体public class MyFile {
static enum LocationEnum {Folders, Hidden};
static enum FileType {File, Folder);
@Id private Long id;
private Key<MyFile> parent;
private String name;
private LocationEnum location;
private FileType fType;
// getters and setters
}
一个单独的DAO类中的函数,用于根据父级查询文件,返回按名称排序的结果。
public List<MyFile> getFiles(Key<MyFile> parent) {
Query<MyFile> q1 = ofy().query(MyFile.class).filter("parent", parent).filter("location", LocationEnum.Folders).order("name");
return q1.list();
}
似乎我的订单被忽略,因为结果按id排序。我确实发现我错过了与索引有关的内容,但我注意到GAE根据位置,父级,名称为我提供了一个自动生成的索引。所以我认为它会起作用。
如何按名称订购?
答案 0 :(得分:1)
我发现了问题。无法在App Engine上进行不区分大小写的搜索。 GAE将按大写第一个A-Z命令,然后是a-z。
答案 1 :(得分:0)
您使用的是什么版本的Objectify?从Objectify4开始,所有字段默认为无索引。因此,您需要使用@Index注释必要的字段。