0

我有一个名为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 祝福我一个基于位置、父级、名称的自动生成索引。所以我认为它会起作用。

如何按名称订购?

4

2 回答 2

1

我发现了问题。无法在 App Engine 上进行不区分大小写的搜索。GAE 将按大写字母排序,首先是 AZ,然后是 az。

于 2012-04-10T23:38:31.997 回答
0

您使用的是什么版本的 Objectify?从 Objectify4 开始,默认情况下所有字段都没有索引。因此,您需要使用@Index注释必要的字段。

于 2012-04-10T00:07:40.180 回答