1

私は最近 Appengine を使い始めましたが、これまでのところすべてが非常にスムーズに進んでいます。1 つのクエリで最大 2 つのフィルターを何度も使用しましたが、3 つ目のフィルターを使用すると、クエリはフィルターの 1 つを無視するようです。フィルターを設定する順序に関係なく、常に同じフィルターが無視されます。無視されているのは「部屋」フィルターです。

これが私のコードです:

Query q = new Query("Schedule").setFilter(FilterOperator.EQUAL.of("FranchiseKey", "Franchise(5)"))
            .setFilter(FilterOperator.EQUAL.of("Room", "Room(81)"))
            .setFilter(FilterOperator.EQUAL.of("Date", date));
    PreparedQuery pq = datastore.prepare(q);
    List<Entity> results = pq.asList(FetchOptions.Builder.withDefaults());

私のデータストアには「Room(82)」というエントリもあり、このクエリはそれらも返します。

データストアのスクリーンショットを投稿するつもりでしたが、これが初めての投稿なので投稿できません。

ありがとう!

4

1 に答える 1

0

.setFilter の代わりに .addFilter を使用しようとしましたか?

addFilter は推奨されていないため、 setFilter を CompositeFilterOperator.and(filter ...) とともに使用する方が適切です。

例:データストア クエリのドキュメント。

于 2013-07-07T14:20:21.670 に答える