3

App Engine データストアとのインターフェースに Objectify ライブラリを使用しています。

私の User クラスでは、ハッシュ化されたパスワードをbyte[]. それをデータストアに入れると、正しくblob.

Userオブジェクトを読み戻そうとすると、次のエラーが発生します。

java.lang.IllegalStateException: Cannot load non-collection value '<Blob: 40 bytes>' into private byte[]

これを修正するにはどうすればよいですか?

ハッシュ化されたパスワードのタイプが になるように User クラスを変更する必要がありますShortBlobか?

4

3 に答える 3

3

Blobとして(またはShortBlob)を取得しbyte[]てから、それを削除してみませんgetBytes()か?

于 2010-04-11T17:18:22.700 に答える
0

md5 'd文字列を使用することをお勧めしますか? もう 1 つの可能性は、バイトをロードしようとしたときに、ユーザーが Objectify によって適切に登録されていないことです。「オブジェクト化」のベスト プラクティスにリンクがあります

http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Relationships

これは、PoJo クラスの静的登録を示唆しています。

于 2012-05-15T18:59:15.913 に答える
0

私は試してみます:

  1. Pojo User クラスで ShortBlog を使用する
  2. Byte[] の代わりに String を使用して Byte[] を String に変換してパスワードを保存する
  3. Objectify google グループにリクエストを投稿する
于 2010-04-11T17:00:35.127 に答える