2017-02-12 8 views
0

私はGoogle App Engineを初めて使い、データストアの一意の識別子を照会しようとしています。たとえば、下に添付されている画像のID/Nameフィールドでクエリを実行しようとしています。Google App Engineで一意のIDを照会しています

Image of Local Database

今のところ、私が持っているコードは、以下です。 listIDは、私がKeyFactoryに渡しているlongのIDです。この場合は、4573968371548160または最初の画像です。

Key listKey = KeyFactory.createKey("Lists", listID); 
Query.FilterPredicate listFilter = new Query.FilterPredicate(Entity.KEY_RESERVED_PROPERTY, Query.FilterOperator.EQUAL, listKey); 
Query listQuery = new Query("Lists").setFilter(listFilter); 
List<Entity> listResults = datastore.prepare(listQuery).asList(FetchOptions.Builder.withDefaults()); 

残念ながら、listResultsの大きさは、0を返して、私はその理由を把握するように見えることはできません。本当に面白いです、私は

Query.FilterPredicate listFilter = new Query.FilterPredicate(Entity.KEY_RESERVED_PROPERTY, Query.FilterOperator.GREATER_THAN, listKey);

listResultsにクエリを変更したときに、データストアの両方のアイテムを返すことです。

誰でもこの理由を説明することができますが、これをどのように修正することができますか?

ありがとうございました!

はEDIT:

long listID = Long.parseLong(total_json.getString("listID"));

は私がlistID

+0

あなたが初期化する方法を投稿してくださいlistID –

+0

私はlistIDをどのように初期化したか投稿しました –

答えて

0

は私が

list = new Entity("Lists", listKeyName);

を書き込むことによって、データベース内のエンティティを作成したことが判明初期化する方法であると私は推測していますこれにより、そのキーでのみ検索可能になりました。 listKeyNameを削除したところ、すべて正常に機能しています。

関連する問題