2016-05-22 2 views
3

Например, я создал hibernate.cfg.xml и автоматически сгенерировал классы (hbm.xml).Как обновить Hibernate, если изменения базы данных

Если я понимаю, что есть что-то, что нужно изменить, добавить или удалить из базы данных, как правило, мне нужно будет вручную изменить базу данных, а затем перейти и изменить исходный код hbm.xml вручную.

Есть ли способ обновить без необходимости удаления кода и повторного создания или изменения кода вручную?

EDIT: Я имел в виду изменение базы данных непосредственно и отражение этих изменений в Java-коде. Извините, я не очень понимаю, потому что я не знал, что есть другой способ.

+1

взгляните на http://www.liquibase.org/ –

ответ

1

Вы можете позволить Hibernate обновляет схему базы данных при запуске проекта, добавив следующую строку в ваш hibernate.cfg.xml:

<property name="hibernate.hbm2ddl.auto">update</property> 

Варианты автоматического имущества:

  1. create - Это создает новые таблицы соответствующее отображение или аннотация. Он снижает существующие таблицы и данные.
  2. update - Он хранит существующие данные и таблицы. Он обновляет схему. здесь мы должны заботиться о контрабанде.
  3. create-drop - Это то же самое, что и создать, но как только сессия закрывается, все падает.
  4. validate - он проверяет или сопоставляет схему с картой или аннотацией. Он действителен для производственной среды.

Если вы хотите сгенерировать .xml-сопоставления из своей базы данных, вы можете сделать это, используя обратный JDBC с помощью Hibernate Tools. Вам нужно указать информацию о подключении к базе данных.

Эта страница имеет отличный пример по этому поводу:

Reverse JDBC with Hibernate Tools

Вы можете выбрать все, что вы хотите, но это намного лучше, портативный и простой в использовании первый вариант.

+0

Не уверен на 100%, но я думаю, что OP задает другой путь - регенерирующие сопоставления или классы из обновленной схемы базы данных. – stuXnet

+0

Я тоже не уверен ... На всякий случай, я обновил свой ответ другим вариантом. –

+0

Не тот ответ, который я ожидал, но это здорово! благодаря –

0

Хорошо, поэтому я нашел способ, и это на самом деле ОЧЕНЬ ЛЕГКО.

Когда мы конфигурируем «Конфигурация генерации кода» в спящем режиме Eclipse, эта конфигурация сохраняется. Итак, когда вы запустите его снова, он снова создаст все «hbm.xml» из базы данных.

Итак:

  1. Внесите необходимые изменения в базе данных.

  2. Удалить пакет, содержащий все ваши «hbm.xml» (не уверен, если это требуется)

  3. Перейти к перспективе Hibernate и запустить конфигурацию снова.

  4. Наслаждайтесь.

Я предпочитаю этот путь, потому что мне не нужно редактировать многие методы и логику Java. Я могу просто создать несколько отношений в моей базе данных или добавить несколько новых столбцов. Очевидно, что, развиваясь только.

Смежные вопросы