私は次のエンティティを持っています:
@Entity
public class ActionIndex extends EntityObjectAutoID {
@Parent Ref<Action> action;
@Id Long id;
@Index List<Long> receivers;
....
}
データストアに追加された最新の10個のエンティティのキーを取得したい。しかし、私はこのクエリを使用する場合:
ofy().load().type(ActionIndex.class).limit(10).keys().list();
もちろん、私は最後の10の代わりに最初の10のエンティティを取得します。 Objectifyのドキュメント:
このクエリがクラスに限定されている場合、@Idプロパティをソートすることができます @Parentを持たないこれは降順でのみ重要であることに注意してください ソート;デフォルトの反復はキー昇順です。
@Parentプロパティはソートできません。
私のクラスは親を持っているので(それが必要です)、余分なタイムスタンプ・プロパティを追加することなくエンティティを逆順で取得するにはどうしたらよいですか?
回答:
回答№1は0私はそれをする方法を見つけました。キーでソートするには、 __key__
プロパティとして。フィルタリングのために、filterKeyという便利なメソッドがありますが、ソート(orderKey)と同等のものは、私が見る限り、存在しません。
ofy().load().type(ActionIndex.class).order("-__key__").limit(10).keys().list();
---編集----
以下のコメントに基づいて、Dateプロパティの使用が必須であるように見えます。