0

我尝试过以下方式但失败了,

Query query = new Query("Users");
List<Entity> results = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(PAGE_SIZE));
for (Entity user : results){
Key key = user.getKey();
System.out.println(key); // here am getting as Users(151),Users(152)...

从这里将“密钥”作为请求参数传递给 servlet。

在我的 Servlet 中,

String keyString = req.getParameter("key");
Key key = KeyFactory.stringToKey(keyString);
datastore.delete(key);

错误显示“无法解析:Users(151)==”,错误行是“Key key = KeyFactory.stringToKey(keyString);”

谁能给我一个想法,

您的帮助将不胜感激。

4

1 回答 1

2

而不是Key作为 java 对象传递给 servlet,你应该使用这个片段来序列化

String encodedKey = KeyFactory.keyToString(key)

这要反序列化

Key key = KeyFactory.stringToKey(encodedKey)
于 2013-01-10T13:45:13.330 回答