簡體   English   中英

無法通過密鑰從數據存儲區獲取實體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM