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 に答える