我是新來的谷歌應用程序引擎,並在開發測試應用程序時,我遇到了一個問題。 我使用用戶的電子郵件ID生成密鑰以保存用戶實體。即使生成密鑰的字符串在appengine中相同,爲什麼生成的密鑰始終不同?
Key key = KeyFactory.createKey("email",email);
現在看到上關鍵的數據存儲觀衆大部分是關鍵的相同只是最後幾個字母甚至當我給了相同的電子郵件ID生成密鑰改變。
其實我希望通過使用代碼的密鑰獲取用戶實體。
Entity user = datastore.get(key);
但由於關鍵是不一樣的以前我得到noEntityFoundException
我想問的是,爲什麼當輸入相同的生成的密鑰每次都是不同的。
此外,如果它每次都不同,我怎樣才能讓它每次都生成相同的密鑰,以便我可以直接通過該密鑰獲取實體?
欲瞭解更多信息,請參考:code index.jsp是歡迎文件。我使用電子郵件ID創建一個用戶,例如:[email protected]。 如果電子郵件ID存在這樣的形式發送細節
com.siolabs.tambola.Createuser.java
CREATEUSER Servlet檢查。如果不是,則將信息保存到數據存儲區。
然後進行登錄我提交的index.jsp頁面上的信息。這將請求轉發到 com.siolabs.tambola.Login.java 登錄的Servlet檢查電子郵件ID存在,如果它不要求再轉發到回到Home.jsp頁。
問題是登錄的servlet從來沒有因爲它是改變找到的電子郵件-ID。
謝謝
我的問題是關於谷歌應用程序引擎。 我覺得我無法讓問題變得可以理解。我想問的是爲什麼當輸入相同時,生成的密鑰每次都會有所不同。 另外如果它每次都不同,我怎麼才能讓它每次生成相同的密鑰,以便我可以直接通過該密鑰獲取實體。 – t0mkaka
你怎麼知道關鍵是不一樣的 - 你有沒有比較兩個不同的值? –
@mattb是的,我比較了值。只有最後幾個字母是相同的。另外我試圖使用email-id生成密鑰,然後使用「datastore.get(key)」並每次給出「EntityNotFoundException」 – t0mkaka