Создание новой таблицы Hibernate - PullRequest
3 голосов
/ 30 сентября 2011

Так что я все еще довольно новичок в Hibernate, и я работаю над большим приложением, которое уже имеет базу данных с несколькими таблицами Hibernate.Я работаю над новой функцией, которая включает в себя новый класс @Entity, и мне нужно, чтобы эти объекты были сохранены в новой таблице.Класс объявлен так:

@Entity
@Table(name="DATA_REQUEST")
public class DataRequest {

//Some fields, nothing fancy

}

Таблица DATA_REQUEST не существует, и у меня пока нет данных для хранения в ней.Я запустил приложение, ожидая, что оно либо создаст таблицу, либо завершится сбоем, потому что оно еще не существует.Ничего из этого на самом деле не произошло.

Итак: нужно ли создавать таблицу вручную (это легко сделать)?Или мне нужно пойти куда-нибудь еще и сказать Hibernate, что мне нужен этот стол?Я видел файл hibernate.cfg.xml, который выглядит как хорошее место для начала.

Ответы [ 3 ]

3 голосов
/ 30 сентября 2011

Вам необходимо указать «create» для свойства «hibernate.hbm2ddl.auto». Подробнее см. здесь . Это не рекомендуется в производстве, но только для целей тестирования.

1 голос
/ 04 октября 2011

из документации по hibernate

hibernate.hbm2ddl.auto

Автоматически проверяет или экспортирует DDL схемы в базу данных при создании SessionFactory.С помощью create-drop схема базы данных будет удалена, когда SessionFactory будет закрыт явно.например проверить |обновление |создать |create-drop

Конфигурация гибернации

1 голос
/ 30 сентября 2011

Что касается добавления нового столбца в таблицу

  • Пока это не ненулевой столбец вам не нужно отбрасывать таблицу или перезапускать ваше приложение гибернации

  • Если вы хотите использовать столбец, вам нужно сопоставить столбец в файле кода / hbm, поэтому вам придется перезапустить приложение hibernate

  • Если в отношении гибернации отсутствует сопоставление, столбец не существует. Если это не нулевой столбец, базовая база данных будет отклонять вставки / обновления, поскольку в спящем режиме столбец не будет создан в сгенерированном sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...