Перенос полей в JDO - PullRequest
       31

Перенос полей в JDO

6 голосов
/ 13 мая 2011

Мы используем JDO в одном из наших проектов.Это продолжалось довольно долго, и, естественно, нам нужно немного изменить модель.

Каков наилучший метод при переносе полей в классах сущностей в JDO?

enum MyEnum {
    REGULAR,
    MYOLDTYPE // Delete this
}
@PersistenceCapable
public class Entity {
    @Persistent
    MyEnum myEnumType;
    @Persistent
    String myString; // Rename this

}

Если яудалить значение enum, будет исключение, если оно уже сохраняется при загрузке из базы данных, как перенести это?

Если я хочу переименовать myString в myNewString, как переименовать столбец с новым именем?

1 Ответ

1 голос
/ 16 мая 2011

Сначала посмотрите на свое хранилище данных (RDBMS?, Что-то еще?), Чтобы увидеть, сохраняете ли вы сохранение в виде строки или числа.

Если вы измените Enum, то вы отвечаете за

  1. Перенос содержимого хранилища данных

  2. Измените определение Enum так, чтобы Enum.valueOf (String) возвращал то, что вы хотите сопоставить старому значению.В качестве альтернативы, если она сохраняется в RDBMS, используйте расширение DataNucleus у основания http://www.datanucleus.org/products/accessplatform_3_0/jdo/types.html, где вы определяете метод для получения Enum для строкового значения.

...