hibernate.hbm2ddl.auto как Hibernate решает, когда создавать или обновлять ddl? - PullRequest
2 голосов
/ 09 марта 2012

У нас возникли проблемы с гибернацией и автоматическим созданием ddl в нашем hsqldb.

Мы используем

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

Обычно hibernate создает таблицы в схеме на БД автоматически, когда мы изменяем сопоставленный объект, но иногда он отказывается это делать. В этом случае мы должны удалить БД вручную из файловой системы, чтобы убедить Hibernate воссоздать все таблицы.

Кто-нибудь знает, как Hibernate решает, когда воссоздать модель данных на БД? Я читал, что он решает, что при создании SessionFactory, но какие именно условия убеждают Hiberbate обновить или создать таблицы?

1 Ответ

5 голосов
/ 09 марта 2012

В вашем конфигурационном файле hibernate вы эту опцию:

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

изменить update на create, или create-drop или validate, в зависимости от того, что вы хотите, чтобы это было .

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

...