繁体   English   中英

Google数据存储区 - 查询关键值

[英]Google datastore - querying on key values

我有一个EntityKind SuggestedInterest。 当我使用键“GrpId”和属性“suggestedint”填充它时。

现在,我需要“suggestint”值来请求“GrpId”

所以,我把查询写成:

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而不是String

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

然后使用它:

 Filter filter = 
    new FilterPredicate(Entity.KEY_RESERVED_PROPERTY,FilterOperator.EQUAL,grpKey);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM