2015-11-13 6 views
3

Я переношу свое приложение на Hibernate 5 из Hibernate 3. Мы используем класс DatabaseMetadata для получения TableMetadata. Следовательно, используя объект TableMetadata, чтобы получить информацию столбца таблицы DB, такую ​​как размер столбца, введите ..etc. Кажется, в Hibernate 5 DatabaseMetadata класс устарел (удалено!). Существуют ли альтернативы для класса DatabaseMetadata в Hibernate 5? Или как получить TableMetadata в Hibernate 5 env?Миграция в Hibernate 5.x

+0

Устаревшие классы и методы перечислены здесь со своими альтернативами. https://docs.jboss.org/hibernate/orm/4.3/javadocs/deprecated-list.html –

+0

Алан, он удален из 5.x. Он доступен в 4.x – Sydubabu

ответ

3

Он был удален в 5.0, когда мы перешли на новый подход к оснастке схемы. DatabaseMetadata представляла существующую информацию о каталоге/схеме из базовой базы данных. В версии 5.0 эта роль обслуживается org.hibernate.tool.schema.extract.spi.DatabaseInformation. Это (и DatabaseMetadata перед ним) действительно поддерживается только для использования в схеме проверки схемы и миграции схемы (обновления). Он передается в эти вызовы. Я предполагаю, что вы используете это по-другому. Это не обязательно поддерживается, но если вы хотите продолжить это так или иначе, вы просто создадите экземпляр org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.

+0

Спасибо Steve It's working – Sydubabu

+0

Привет @Sydubabu, я отчаянно пытаюсь интегрировать свои сценарии БД в обновление схемы Hibernate. Не могли бы вы привести пример использования org.hibernate.tool.schema.extract.spi.DatabaseInformation? Я иду из Hibernate 3.2.3-ga. Переход на 5.1.0-Final – prageeth