Изменение схемы JDO App Engine. Обновление нового ненулевого значения - PullRequest
1 голос
/ 04 февраля 2010

Типы, не допускающие значения NULL, включают int и boolean. Мой вопрос заключается в том, как обновить объекты, которые уже сохраняются с изменением схемы, добавив новую переменную этих типов. Кажется, что я не могу получить эти объекты, потому что теперь у них есть переменная NULL, где NULL не допускается!

Согласно: http://code.google.com/appengine/docs/java/datastore/dataclasses.html#Object_Fields_and_Entity_Properties

Если поле не имеет типа значения NULL, загрузка объекта без соответствующего свойства приводит к исключению. Этого не произойдет, если объект был создан из того же класса JDO, который использовался для воссоздания экземпляра, но может произойти, если класс JDO изменится или если объект будет создан с использованием низкоуровневого API вместо JDO.

Означает ли это, что невозможно добавить переменную этих типов в мою схему?

1 Ответ

3 голосов
/ 04 февраля 2010

Вы можете добавить новые свойства, но они должны быть в состоянии принимать нули, что означает две вещи:

  1. Вы не можете добавлять примитивы. Вместо int и boolean вы должны использовать Integer и Boolean.

  2. Ваш код должен быть подготовлен, чтобы свойство было нулевым.

...