0

私はこの機能を持っています:

@Override
  public List<Expense> getExpensesBetween(Date firstDate, Date secondDate) {

    Query query = new Query(expenseEntityKind);

    query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, secondDate);

    query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, firstDate);

    Iterable<Entity> entities = service.prepare(query).asIterable();

    return getReturnedExpenses(entities);
  }

2つの日付の間、つまり2012-05-01以上と2012-06-01以下のすべての費用を返したい。GoogleAppEngineのドキュメントを調べました。コンポジットフィルターを使用する必要があると書かれています。Googleのドキュメント:「ただし、クエリに複数のフィルタを設定する場合は、を使用CompositeFilterする必要があります。使用するには、少なくとも2つのフィルタが必要CompositeFilterです。ただし、このドキュメントは古いようで、という関数は見つかりませんでした。setFilter();。複合フィルターを作成する方法についての提案はありますか?App-enginesdk1.6.6を使用しています。よろしくお願いします。

4

2 に答える 2

1

以下はhttps://cloud.google.com/appengine/docs/java/datastore/queriesから取得したもので、ここで役立つ可能性があります

Filter heightMinFilter =
  new FilterPredicate("height",
                      FilterOperator.GREATER_THAN_OR_EQUAL,
                      minHeight);

Filter heightMaxFilter =
  new FilterPredicate("height",
                      FilterOperator.LESS_THAN_OR_EQUAL,
                      maxHeight);

//Use CompositeFilter to combine multiple filters
Filter heightRangeFilter =
  CompositeFilterOperator.and(heightMinFilter, heightMaxFilter);
于 2014-10-28T08:45:33.807 に答える
0

探しているドキュメントは最新バージョン(1.7.0)のものです。その機能は導入されたばかりです。ここでは、CompositeFilterの使用方法の例を示します(1.7.0も)。

于 2012-06-28T10:48:25.150 に答える