3

私は GAE を使用しており、9 月 1 日以降に作成された要素を要求する Objectify クエリを作成する必要があります。

dateCreated フィールドは Java.util.Date で、2012-11-29 16:03:59.494000 の形式で保存されます。

このリクエストは機能していません:

   public List<MyElement> listAllFromUser(String userId)
    {
        Objectify ofy = ObjectifyService.begin();
        Query<MyElement> q=ofy.query(MyElement.class).filter("dateCreated >", "2013-09-01 00:00:00");

        List<MyElement> results = q.list();

        return results;
    }
4

1 に答える 1

8
  1. 列にインデックスを付ける必要があります

    @Indexed 保護された日付 dateCreated;

  2. リクエストでは 1 つの列でのみ並べ替えることができます (インデックスが並べ替えられてから分析されるため、> と < と != はすべて並べ替えと見なされます)。

  3. 精度を落とすことで日付をグループ化できます: 2012-11-29 16:03:59.494000 は 2012-11-29 になり、 == 安全に使用できます。必要な精度 (日、週、月) ごとに列を作成します。一般に、ソート操作にはできるだけ頼らないようにしてください。遅かれ早かれ、その選択に満足するでしょう。

于 2013-10-25T16:29:32.510 に答える