4

私は google-app-engine を初めて使用し、テスト アプリケーションの開発中に問題が発生しました。ユーザーエンティティを保存するために、ユーザーの電子メールIDを使用してキーを生成しています。

Key key = KeyFactory.createKey("email",email );

データストア ビューアを見ると、キーを生成するために同じ電子メール ID を指定している場合でも、キーのほとんどの部分が同じで、キーの最後のアルファベットがいくつか変更されています。

実際には、コードを使用してキーでユーザーエンティティを取得したいと考えていました。

Entity user = datastore.get(key);

しかし、キーが以前と同じではないため、noEntityFoundExceptionを取得しています

私が聞きたかったのは、入力が同じであるのに、生成されたキーが毎回異なる理由です。

また、毎回異なる場合、そのキーでエンティティを直接取得できるように、毎回同じキーを生成するようにするにはどうすればよいですか?

より明確にするために:ここにコードがあります index.jsp はウェルカムファイルです。abc@example.com などのメール ID を持つユーザーを作成します。これにより、フォームの詳細が

com.siolabs.tambola.Createuser.java

Createuserサーブレットは、電子メール ID が存在するかどうかを確認します。そうでない場合は、情報をデータストアに保存します。

createUser コードはこちら

次に、ログインのために index.jsp ページに情報を送信します。リクエストを com.siolabs.tambola.Login.java に転送します。 ログイン サーブレットは、電子メール ID が存在するかどうかを確認し、存在する場合はリクエストをhome.jspページに転送します。

ログインサーブレットコード

問題は、ログインサーブレットがメール ID が変更されても見つからないことです。

ありがとう

4

1 に答える 1

0

createKey 関数は 2 つの文字列を取ります。

Key key = KeyFactory.createKey("email",email);

2 番目の電子メール パラメータが文字列であることは確かですか? ほとんどの場合、間違って文字列に変換されているのは他の型です。

于 2012-09-18T15:36:19.613 に答える