Добавить столбец в таблицу, отображенную с помощью спящего режима, без потери существующих данных - PullRequest
8 голосов
/ 28 марта 2012

У меня есть таблица с именем Person, которую я уже отобразил в hibernate. У меня уже есть некоторые данные, которые я не хочу потерять. Мне нужно добавить новый столбец с именем address, Есть идеи, как это сделать в спящем режиме?

Заранее спасибо ..

Ответы [ 3 ]

7 голосов
/ 28 марта 2012

Если ваши текущие таблицы генерируются Hibernate, вы можете просто добавить свойство address в класс сущности java для столбца address.Затем установите для свойства hibernate.hbm2ddl.auto значение update, и hibernate автоматически создаст этот столбец при следующем построении SessionFactory.Hibernate не изменит никакого хранилища данных в вашей базе данных, если hibernate.hbm2ddl.auto равно update.

. Или вы можете вручную выполнить SQL, чтобы изменить структуру таблицы, а затем добавить свойство адреса в класс сущности java дляадресная колонка.

1 голос
/ 30 марта 2012

Вы также должны прочитать этот другой вопрос / ответ SO: Hibernate: hbm2ddl.auto = обновление в рабочем режиме? , прежде чем установить hibernate.hbm2ddl.auto на update.

0 голосов
/ 28 марта 2012

Скорее всего, вы не обязаны использовать Hibernate для создания / обновления схемы базы данных. Я предполагаю, что у вас есть что-то вроде этого в вашей конфигурации:

<property name="hibernate.hbm2ddl.auto" value="create-drop" />

Просто измените значение на «validate», внесите изменения в сопоставления и выполните инструкции ALTER TABLE отдельно.

Другой вариант - использовать «обновление», чтобы Hibernate выяснил, как обновить структуру таблицы. Я предлагаю держать его в руках и просто выполнить DDL SQL вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...