回答
ID對於給定種類和父實體而言是唯一的,而不是全局的,所以沒有辦法讓實體只給出ID。如果您不知道這種類型,則需要傳輸編碼的實體密鑰,而不僅僅是ID。
,你的假設是數據存儲區提供有效的,ID似乎是唯一的無論那種的。編輯: 對不起,我錯了。顯然,正如Nick在評論中所證實的那樣,只有在同一種類中,ID才被保證是唯一的,我的觀察僅適用於開發服務器中的實體。
但是,目前恐怕知道Kind與某個ID關聯的唯一方法是從數據存儲區加載實體並檢查getKind()值。
謝謝,但我發現沒有辦法加載實體不知道這種。 KeyFactory需要Kind和Id來生成密鑰。有什麼想法嗎? – KlasE 2012-01-12 08:36:29
啊,是的,那麼它就成爲了一個可以接受的22。那麼,我唯一想到的就是使用'DatastoreServiceFactory.getDatastoreService()。getIndexes()'來獲取你的應用程序的所有索引,使用每個索引中的'getKind()'並構造一組Kind,嘗試使用Kinds集加載實體,直到獲得返回結果的實體。 (醜陋的解決方法,我知道) – 2012-01-12 08:43:22
是的,這將是一種解決方法,但相當無效。在我們的問題中,Kind kan可能是四種或五種已知類型之一,所以我們可以嘗試迭代這些類型,但即使這樣也會導致開銷。我曾希望忽略一些文檔,但可能無法做到這一點。 – KlasE 2012-01-12 08:52:38
如果您有一個實體密鑰,您可以使用getKind(它們實際上是解碼密鑰的一部分)獲得實物。
但是,您需要使用該種類才能使用KeyFactory.createKey從ID構建完整密鑰。
- 1. 查找子類ID從超類ID
- 2. 在ID組中找到類
- 3. 在JavaScript中查找ID FileUpload
- 4. 使用BeautifulSoup從類中查找ID
- 5. 在iOS 7中檢查類的種類
- 6. 查找ID和類之間的匹配
- 7. 查找MATLAB mlint警告ID的類別
- 8. 如何在NSArray中查找某種類型的對象?
- 9. 在視圖類中查找小部件的ID
- 10. GORM在grails中的ID查找字段
- 11. Android - 在SubMenu中查找項目的ID
- 12. 在jquery中查找id的值
- 13. AppEngine上 - 在AppEngine上HR的DataStore奇怪的ID分配
- 14. 在潛在ID的列表中查找無效的記錄ID
- 15. 使用BlobKey在Google AppEngine的BlobStore中查找blob
- 16. appengine datastore id和key_name
- 17. 的BizTalk查找ID
- 18. 查找在vim中加載了哪種文件類型
- 19. 查找列表specyfic內容類型ID
- 20. 查找ID或類元素串
- 21. 查找ID並添加動畫類
- 22. 如何查找ID不在主ID表
- 23. 如何使用jquery在div id中查找類?
- 24. 在Ace Editor HTML腳本中查找所有類和id名稱
- 25. 在HTML解析器中按類或ID查找對象
- 26. 在NSString中查找各種子串
- 27. 在續集種子中查找記錄
- 28. 在類中查找屬性的類型
- 29. 在objective-c中查找類的子類
- 30. 查找ID找不到ID並創建
謝謝,真的很高興知道。我將在此基礎上重新審視我的編碼。 – KlasE 2012-01-13 09:44:19