Как проверить соответствие Hibernate с базой данных - PullRequest
13 голосов
/ 22 января 2010

Как проверить, что конфигурация отображения Hibernate соответствует базе данных? Я хотел бы знать, если я использую неправильную версию отображения гибернации, прежде чем я начну выполнять обновление и запросы, которые затем потерпят неудачу.

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

Я бы хотел проверить по крайней мере следующие вещи:

  • все сопоставленные таблицы в конфигурации Hibernate имеют соответствующий объект в базе данных (например, таблицу или представление)
  • все сопоставленные поля существуют в базе данных
  • все сопоставленные поля имеют правильные типы

Я бы предпочел, чтобы мне не приходилось выполнять запросы к отображенным таблицам, предпочтительно проверка основана исключительно на метаданных базы данных.

1 Ответ

18 голосов
/ 22 января 2010

С Документация по настройке гибернации :

hibernate.hbm2ddl.auto

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

например. проверить | обновление | создать | create-drop

Итак, вы можете установить его на validate, и он проверит, присутствует ли все в ваших отображениях гибернации в базе данных. Если вы установите его на update, то каждый раз, когда вы добавляете сопоставленный класс или свойство, базовая схема БД будет обновляться с учетом этого изменения.

У вас также есть инструмент командной строки - SchemaUpdate

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