我是 google-app-engine 的新手,在开发测试应用程序的过程中遇到了一个问题。我正在使用用户的电子邮件 ID 生成密钥以保存用户实体。
Key key = KeyFactory.createKey("email",email );
现在看到数据存储查看器的大部分密钥是相同的,即使我提供相同的电子邮件 ID 来生成密钥,密钥的最后几个字母也会更改。
实际上,我希望使用代码通过密钥获取用户实体。
Entity user = datastore.get(key);
但是由于密钥与以前的密钥不同,我得到noEntityFoundException
我想问的是为什么当输入相同时生成的密钥每次都不同。
另外,如果每次都不同,我怎样才能让它每次都生成相同的密钥,以便我可以直接通过该密钥获取实体?
更多说明:这里是代码 index.jsp 是欢迎文件。我创建了一个具有电子邮件 ID 的用户,例如:abc@example.com。这会将表单详细信息发送到
com.siolabs.tambola.Createuser.java
Createuser servlet 检查电子邮件 ID 是否存在。如果没有,则将信息保存到数据存储区。
然后登录我在 index.jsp 页面上提交信息。它将请求转发到 com.siolabs.tambola.Login.java 登录 Servlet检查电子邮件 ID 是否存在,如果存在则将请求转发到home.jsp页面。
问题是登录servlet 在更改时永远找不到电子邮件 ID。
谢谢