Google数据存储 - 查询关键值 [英] Google datastore - querying on key values

查看:77
本文介绍了Google数据存储 - 查询关键值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个EntityKind SuggestedInterest。
当我用一个关键字GrpId和属性suggestedint来填充它。



现在,我需要为请求的GrpId



因此,我将查询写为:

 字符串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);
实体结果= pq0.asSingleEntity();
返回result.getProperty(suggestedint)。toString();
}

当我执行这段代码时,我得到了

  java.lang.IllegalArgumentException:__key__过滤器值必须是键

开发者文档告诉使用Entity.KEY_RESERVED_PROPERTY来查询密钥,但我想我误解了。什么是正确的方式来查询关键?

解决方案

您应该传递一个而不是字符串

 密钥grpKey = KeyFactory。然后使用它: 

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


I have a EntityKind SuggestedInterest. When I populate that with a key "GrpId" and property "suggestedint".

Now, I need the "suggestedint" value for a requested "GrpId"

So, I write the query as:

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();       
}

When I execute this code I get

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

The developer docs told to use Entity.KEY_RESERVED_PROPERTY to query on keys, but I guess I misunderstood. What is the correct way to query on key ?

解决方案

You should pass it a Key instead of String:

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

then use it:

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

这篇关于Google数据存储 - 查询关键值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆