Как поменять ключи в Objectify - PullRequest
1 голос
/ 08 октября 2011

У меня проблема. Раньше у меня была сущность, которая имела @id private String key. Но теперь я должен изменить это на @id private Long key. Проблема в том, что Objectify не позволит мне. Я получаю

IllegalStateException: Loaded Entity has name but com.XX.YYY.MyClass has no String @id

Так что я не уверен, что делать.

1 Ответ

2 голосов
/ 08 октября 2011

Я не знаком с Objectify (так что, надеюсь, кто-то может вмешаться), но предположим, что Objectify проходит через ограничение, что ключ Entity должен иметь ровно одно из имени или идентификатора.После создания сущности ключ является неизменным.

Единственный способ повторно ввести ключ - это

  1. Экспортировать данные, исправить их за пределами хранилища данных, а затем очиститьхранилище данных и перезагрузка, или
  2. Создайте и заполните параллельный набор сущностей нового типа, перенеся соответствующие данные из старой сущности в новую.

В обоих случаях вынужно найти и перенести ссылки вручную.

Обе эти работы требуют тщательной работы.

...