Как проверить сопоставление Hibernate с базой данных
Как проверить, что конфигурация сопоставления Hibernate соответствует базе данных? Я хотел бы знать, использую ли я неправильную версию Hibernate mapping, прежде чем я начну выполнять обновление и запросы, которые затем потерпят неудачу.
У меня есть куча классов, которые были сопоставлены с аннотациями гибернации. У меня также есть подключение к соответствующей базе данных. Теперь я хотел бы проверить, соответствует ли сопоставление Hibernate базе данных.
Я хотел бы проверить, по крайней мере, следующее вещи:
- все сопоставленные таблицы в конфигурации Hibernate имеют соответствующий объект в базе данных (e.G таблица или представление)
- все сопоставленные поля существуют в базе данных
- все сопоставленные поля имеют правильные типы
Я бы предпочел, чтобы мне не приходилось выполнять запросы к сопоставленным таблицам, предпочтительно проверка основана исключительно на метаданных базы данных.
1 ответов
С Hibernate configuration docs:
hibernate.hbm2ddl.auto
автоматически проверяет или экспортирует DDL схемы в базу данных при создании SessionFactory. С помощью create-drop схема базы данных будет удалена при явном закрытии SessionFactory.
например, validate | update | create / create-drop
таким образом, вы можете установить его в validate
и он проверит, все ли в ваших сопоставлениях hibernate присутствует в базе данных. Если вы установите его в update
, то каждый раз, когда вы добавляете сопоставленный класс или свойство, базовая схема БД будет обновляться, чтобы отразить это изменение.
у вас также есть утилита командной строки - SchemaUpdate