anu*_*anu 7 java google-app-engine google-cloud-datastore
我有一个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();
}
Run Code Online (Sandbox Code Playgroud)
当我执行此代码时,我得到了
java.lang.IllegalArgumentException: __key__ filter value must be a Key
Run Code Online (Sandbox Code Playgroud)
开发人员讲述了使用Entity.KEY_RESERVED_PROPERTY来查询密钥,但我想我误解了.查询密钥的正确方法是什么?
Pet*_*ego 12
你应该传递它Key而不是String:
Key grpKey = KeyFactory.createKey("SuggestedInterest", grpId)
Run Code Online (Sandbox Code Playgroud)
然后使用它:
Filter filter =
new FilterPredicate(Entity.KEY_RESERVED_PROPERTY,FilterOperator.EQUAL,grpKey);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3714 次 |
| 最近记录: |