我试图查询数据存储区的唯一标识符 . 例如,我试图查询下面附加的图像的 ID/Name
字段 .
截至目前,我的代码如下 . listID
是我作为 long
的ID,我将其传入 KeyFactory
. 在这种情况下,它是 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,我可以't seem to figure out why. What'真的很有趣,当我将查询更改为
Query.FilterPredicate listFilter = new Query.FilterPredicate(Entity.KEY_RESERVED_PROPERTY, Query.FilterOperator.GREATER_THAN, listKey);
listResults
返回数据存储区中的两个项目 .
任何人都可以解释为什么会这样,以及我如何解决这个问题?
谢谢!!!
编辑:
long listID = Long.parseLong(total_json.getString("listID"));
是我如何初始化listID
1 回答
事实证明我通过写作在数据库中创建了实体
list = new Entity("Lists", listKeyName);
而且我猜这使得它只能在那个密钥上搜索 . 我删除了
listKeyName
,现在一切正常 .