查询Google App Engine中的唯一ID

时间:2017-02-12 07:56:01

标签: java google-app-engine google-cloud-datastore

我是Google App Engine的新用户,我试图查询数据存储区的唯一标识符。例如,我正在尝试查询下面附带图像的ID/Name字段。

Image of Local Database

截至目前,我的代码如下。 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

1 个答案:

答案 0 :(得分:0)

原来我通过编写

在数据库中创建了实体

list = new Entity("Lists", listKeyName);

我估计这只能在该密钥上进行搜索。我删除了listKeyName,现在一切正常。