App Engine - Objectify - Хранение байта [] - PullRequest
3 голосов
/ 11 апреля 2010

Я использую библиотеку Objectify для взаимодействия с хранилищем данных механизма приложений.

В моем классе User я храню хешированный пароль как byte[]. Когда я помещаю его в хранилище данных, он правильно сохраняется как blob.

Когда я пытаюсь загрузить объект User обратно, я получаю эту ошибку:

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

Как мне это исправить?

Нужно ли менять класс пользователя, чтобы хешированный пароль имел тип ShortBlob?

Ответы [ 3 ]

3 голосов
/ 11 апреля 2010

Почему бы вам не извлечь как Blob (или ShortBlob), а затем вывести byte[] из этого с getBytes()?

0 голосов
/ 15 мая 2012

Я предлагаю просто использовать строку md5 'd? Другая возможность - когда вы пытаетесь загрузить байт, пользователь не был должным образом зарегистрирован в Objectify. в рекомендациях 'objectify' есть ссылка

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

, что предполагает статическую регистрацию ваших классов PoJo.

0 голосов
/ 11 апреля 2010

Я бы попробовал с:

  1. Использование ShortBlog в вашем классе пользователя Pojo
  2. Преобразование байта [] в строку с использованием строки вместо байта для хранения пароля
  3. Отправка запроса в Объективить группу Google
...