8

EntityKind SuggestedInterest があります。キー「GrpId」とプロパティ「suggestedint」を入力すると。

ここで、要求された「GrpId」の「suggestedint」値が必要です

したがって、クエリを次のように記述します。

String findSuggestedInterest(String grpId)
{
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Filter filter = new FilterPredicate(Entity.KEY_RESERVED_PROPERTY,FilterOperator.EQUAL,grpId);
    Query q0 = new Query("SuggestedInterest").setFilter(filter);
    PreparedQuery pq0 = datastore.prepare(q0);
    Entity result = pq0.asSingleEntity();
    return result.getProperty("suggestedint").toString();       
}

このコードを実行すると、

java.lang.IllegalArgumentException: __key__ filter value must be a Key

開発者のドキュメントでは、Entity.KEY_RESERVED_PROPERTY を使用してキーをクエリするように指示されていますが、誤解していると思います。key を照会する正しい方法は何ですか?

4

1 に答える 1

12

Keyの代わりにa を渡す必要がありStringます。

Key grpKey = KeyFactory.createKey("SuggestedInterest", grpId)

それを使用します:

 Filter filter = 
    new FilterPredicate(Entity.KEY_RESERVED_PROPERTY,FilterOperator.EQUAL,grpKey);
于 2012-12-02T20:30:34.300 に答える