[英]Can't get Entity from Datastore by Key
我正在嘗試通過鍵訪問獲取實體,但是每次嘗試獲取它都獲取異常。
datastore.put(en);
String key = en.getKey();
然后將密鑰作為String發送給另一個servlet,例如4644337115725824。當我嘗試通過此代碼獲取Entity時
Key key = KeyFactory.createKey("User", req.getParameter("key"));
Entity en = datastore.get(key);
在最后一行,我有一個EntityNotFoundException和'找不到與關鍵字匹配的實體:User(“ 4644337115725824”)'這是怎么回事?
我認為您的密鑰可能存在序列化/反序列化問題。 要將密鑰序列化為websafe字符串,請使用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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.