Я переношу свое приложение на Hibernate 5 из Hibernate 3. Мы используем класс DatabaseMetadata
для получения TableMetadata
. Следовательно, используя объект TableMetadata
, чтобы получить информацию столбца таблицы DB, такую как размер столбца, введите ..etc. Кажется, в Hibernate 5 DatabaseMetadata
класс устарел (удалено!). Существуют ли альтернативы для класса DatabaseMetadata
в Hibernate 5? Или как получить TableMetadata
в Hibernate 5 env?Миграция в Hibernate 5.x
ответ
Он был удален в 5.0, когда мы перешли на новый подход к оснастке схемы. DatabaseMetadata представляла существующую информацию о каталоге/схеме из базовой базы данных. В версии 5.0 эта роль обслуживается org.hibernate.tool.schema.extract.spi.DatabaseInformation
. Это (и DatabaseMetadata перед ним) действительно поддерживается только для использования в схеме проверки схемы и миграции схемы (обновления). Он передается в эти вызовы. Я предполагаю, что вы используете это по-другому. Это не обязательно поддерживается, но если вы хотите продолжить это так или иначе, вы просто создадите экземпляр org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl
.
Спасибо Steve It's working – Sydubabu
Привет @Sydubabu, я отчаянно пытаюсь интегрировать свои сценарии БД в обновление схемы Hibernate. Не могли бы вы привести пример использования org.hibernate.tool.schema.extract.spi.DatabaseInformation? Я иду из Hibernate 3.2.3-ga. Переход на 5.1.0-Final – prageeth
Устаревшие классы и методы перечислены здесь со своими альтернативами. https://docs.jboss.org/hibernate/orm/4.3/javadocs/deprecated-list.html –
Алан, он удален из 5.x. Он доступен в 4.x – Sydubabu