2016-01-19 20 views
0

我想使用Datastore Java API to retrieve an entity,但我似乎在爲查找準備密鑰時遇到問題。提供可用於查找實體的密鑰的網頁安全表示形式

這是關鍵的應該是什麼樣子像JSON表示

partition_id { 
    dataset_id: "mydataset" 
} 
path_element { 
    kind: "MyKind" 
    id: 1234567890 
} 

但是,創建使用DatastoreHelper.makeKey(Object...)的關鍵形式從無到有,用參數MyKind和ID 1234567890僅填充path_element部分,使用這樣的鍵lookup request不會返回任何結果。現在,我使用數據集ID填充密鑰,但它感覺不太正確。

我通過REST API向客戶端提供ID,並且爲簡單的加載,我不想要求額外的信息,只是種類和密鑰。

是否有API我還沒有看到使用kind/id組合輕鬆檢索實體?我不能使用Objectify Keysload the entity使用ID,因爲它似乎Objectify does not work with protobuffers(通過this answer)。

+0

填充'partition_id.dataset_id'是可選的。無論是否填充,您都應該得到相同的結果(服務器會根據請求發送到的項目自動填充它)。 –

+0

@EdDavisson我這麼認爲,但它不會自動填充在我的環境中。這可能只是[本地數據存儲](https://cloud.google.com/datastore/docs/apis/javadoc/com/google/api/services/datastore/client/LocalDevelopmentDatastore)的一個問題,但不幸的是現在,創建一個可行的密鑰的唯一方法就是自己填充'dataset_id'。非常感謝您的回答,我會嘗試使用類似生產的設置。 – Kariem

+1

這聽起來像一個錯誤。插入數據時是否填充了dataset_id?我想知道它是否與LocalDevelopmentDatastore中設置的dataset_id不匹配?如果您有機會通過repro說明提交錯誤,則可以嘗試查看:https://github.com/GoogleCloudPlatform/google-cloud-datastore。 –

回答

相關問題