我是Google App Engine的新用户,我试图查询数据存储区的唯一标识符。例如,我正在尝试查询下面附带图像的ID/Name
字段。
截至目前,我的代码如下。 listID
是我传递给long
的{{1}} 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());
的大小正在返回0,我似乎无法弄清楚原因。当我将查询更改为
listResults
Query.FilterPredicate listFilter = new Query.FilterPredicate(Entity.KEY_RESERVED_PROPERTY, Query.FilterOperator.GREATER_THAN, listKey);
返回数据存储区中的两个项目。
任何人都可以解释为什么会这样,以及我如何解决这个问题?
感谢!!!
编辑:
listResults
是我如何初始化listID
答案 0 :(得分:0)
原来我通过编写
在数据库中创建了实体 list = new Entity("Lists", listKeyName);
我估计这只能在该密钥上进行搜索。我删除了listKeyName
,现在一切正常。