我正在尝试通过密钥访问获取实体,但每次我尝试获取它时我都会获得异常。
datastore.put(en);
String key = en.getKey();
然后将密钥作为字符串发送到另一个servlet,如4644337115725824.当我试图通过此代码获取实体时
Key key = KeyFactory.createKey("User", req.getParameter("key"));
Entity en = datastore.get(key);
在最后一行,我有一个EntityNotFoundException并且'找不到与该键匹配的实体:User(“4644337115725824”)' 怎么了?
答案 0 :(得分:0)
我认为您的密钥可能存在序列化/反序列化问题。要将密钥序列化为websafe String,请使用KeyFactory.keyToString(key):
Key key = entity.getKey();
String serializedKey = KeyFactory.keyToString(key);
稍后,当您想要反序列化另一个servlet上的键时,可以使用KeyFactory.stringToKey(string):
Key deserializedKey = KeyFactory.stringToKey(serializedKey);
Entity en = datastore.get(deserializedKey);