我正在將AppEngine用於HR數據存儲,而我的對象的ID爲Long
(使用Java)。我不會自己設置ID,但讓數據存儲選擇一個新的唯一ID。到目前爲止,我只看到了正面的ID。AppEngine HR數據存儲區是否自動分配負號?
不AppEngine上也曾經分配的ID負? (假設我沒有要求2^63以上的ID;))
我正在將AppEngine用於HR數據存儲,而我的對象的ID爲Long
(使用Java)。我不會自己設置ID,但讓數據存儲選擇一個新的唯一ID。到目前爲止,我只看到了正面的ID。AppEngine HR數據存儲區是否自動分配負號?
不AppEngine上也曾經分配的ID負? (假設我沒有要求2^63以上的ID;))
答案似乎是:MAYBE。
在我的測試中,我只看到積極的自動生成的ID,但我能夠存儲負的ID(如果手動分配)。除非有人能夠指出我們提供的其他規範或至少一些來自AppEngine團隊的Google員工發言,否則我們必須假設他們至少保留隨時產生否定ID的權利。因此,我們的代碼不能假定生成的ID始終是肯定的。
allocate_id_range(預先分配ID的Python方法)如果傳遞負值,會引發異常。所以我想,一個負面的ID鍵是不正確的。
在GAE數據存儲對象產生兩個唯一值, 一個是KEY,當你保存(放)操作後,即可製作模型對象,&的實例,它產生,它產生ID(總是會一個正數),並且當然在整個datastrore中都是唯一的。
你說:「永遠是一個正數」。你怎麼知道?這有保證嗎?如果是這樣,請參閱文檔/規格? – Daniel
我能夠存儲使用Java負ID的對象,所以AppEngine上數據存儲本身不支持負的ID。但是他們是否生成它們的問題尚未得到解答。 – Daniel