3

我正在使用 Objectify 库与应用引擎数据存储进行交互。

在我的 User 类中,我将散列密码存储为byte[]. 当我将它放入数据存储区时,它被正确存储为blob.

当我尝试重新加载User对象时,出现此错误:

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

我该如何解决?

我是否必须更改我的 User 类才能使哈希密码为 type ShortBlob

4

3 回答 3

3

你为什么不检索 as Blob(or ShortBlob) 然后用byte[]去掉它getBytes()

于 2010-04-11T17:18:22.700 回答
0

我会尝试:

  1. 在您的 Pojo User 类中使用 ShortBlog
  2. 使用 String 而不是 Byte 将 Byte[] 转换为 String 来存储您的密码
  3. 向Objectify google 组发布请求
于 2010-04-11T17:00:35.127 回答
0

我建议只使用 md5 'd 字符串?另一种可能性是当你尝试加载字节时,Objectify 没有正确注册用户。“objectify”最佳实践中有一个链接

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

这表明您的 PoJo 类的静态注册。

于 2012-05-15T18:59:15.913 回答