簡體   English   中英

Java Google Appengine datastore.get在現有實體上引發EntityNotFoundException

[英]Java Google appengine datastore.get throws EntityNotFoundException on an existing entity

尋找有關如何嘗試通過鍵獲取我知道的實體時出現EntityNotFoundException的想法。

屏幕快照顯示了帶有實體和異常的管理控制台

正如您在屏幕快照中看到的那樣,我有一個類型為“ Qualifier”的實體,其ID /名稱為99_999_9993#5678但出現了一個異常消息“找不到與密鑰匹配的實體:Qualifier(“ 99_999_9993#5678”)”

我不認為這是相關的,而只是為了完整性...:該實體是在事務內部創建的,並且具有祖先(實體組)。 get請求是基於手動創建的密鑰的簡單非跨國性get。

關於為何為什么要獲取此EntityNotFoundException而不是獲取實體的任何想法?

事實證明,盡管我不相關,但實際上卻非常相關。 創建實體時,我使用KeyFactory為它的祖先創建了一個鍵,但是當我獲取它時,我只使用了它自己的一部分。

我一改使用

Key groupKey=KeyFactory.createKey(Kinds.Group, group_id);
Key key=KeyFactory.createKey(groupKey,Kinds.Qualifier, qualifier_id );

代替

Key key=KeyFactory.createKey(Kinds.Qualifier, qualifier_id );

它開始按預期返回我的實體。

因此基本上需要注意的重要一點是,數據存儲查看器ID /名稱僅顯示鍵名的本地部分,而忽略任何有關祖先(實體組)的事實的指示...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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