Java googleappengine中唯一ID的查询

Java googleappengine中唯一ID的查询,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,我是谷歌应用引擎的新手,我正在尝试查询数据存储的唯一标识符。例如,我试图查询下面所附图像的ID/Name字段 到目前为止,我的代码如下listID是作为long传递到KeyFactory的ID。在这种情况下,它是4573968371548160或图片中的第一个 Key listKey = KeyFactory.createKey("Lists", listID); Query.FilterPredicate listFilter = new Query.FilterPredicate(Enti

我是谷歌应用引擎的新手,我正在尝试查询数据存储的唯一标识符。例如,我试图查询下面所附图像的
ID/Name
字段

到目前为止,我的代码如下
listID
是作为
long
传递到
KeyFactory
的ID。在这种情况下,它是
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());
Key listKey=KeyFactory.createKey(“列表”,listID);
Query.FilterPredicate listFilter=新建Query.FilterPredicate(Entity.KEY\u RESERVED\u属性,Query.FilterOperator.EQUAL,listKey);
查询listQuery=新查询(“列表”).setFilter(listFilter);
List listResults=datastore.prepare(listQuery).asList(FetchOptions.Builder.withDefaults());
不幸的是,
listResults
的大小返回0,我似乎不知道为什么。真正有趣的是,当我将查询更改为

Query.FilterPredicate listFilter=new Query.FilterPredicate(Entity.KEY\u RESERVED\u属性,Query.FilterOperator.GREATER\u THAN,listKey)

listResults
返回数据存储中的两项

有人能解释一下为什么会这样,我该如何解决这个问题吗

谢谢

编辑:

long listID=long.parseLong(total_json.getString(“listID”)


是如何初始化listID的结果是我通过编写

list=新实体(“列表”,listKeyName)


我猜这使得它只能在那把钥匙上搜索。我删除了
listKeyName
,现在一切都正常了。

你可以发布你是如何初始化listID的吗我已经发布了我是如何初始化listID的