2015-11-13 3 views
3

Je migre mon application vers Hibernate 5 depuis Hibernate 3. Nous utilisons la classe DatabaseMetadata pour obtenir TableMetadata. Par conséquent, en utilisant l'objet TableMetadata pour obtenir des informations sur les colonnes de la table DB, comme la taille de la colonne, tapez..etc. Il semble que dans Hibernate 5 DatabaseMetadata devienne obsolète (enlevé!). Y a-t-il des alternatives pour la classe DatabaseMetadata de Hibernate 5? Ou alors comment obtenir TableMetadata dans Hibernate 5 env?Migration vers Hibernate 5.x

+0

Les classes et méthodes obsolètes sont listées ici avec leurs alternatives. https://docs.jboss.org/hibernate/orm/4.3/javadocs/deprecated-list.html –

+0

Alan, Il est supprimé de 5.x. Il est disponible en 4.x – Sydubabu

Répondre

3

Il a été supprimé en 5.0 alors que nous adoptons une nouvelle approche de l'outillage de schéma. DatabaseMetadata représentait les informations de catalogue/schéma existantes de la base de données sous-jacente. Dans 5.0 ce rôle est servi par org.hibernate.tool.schema.extract.spi.DatabaseInformation. Cela (et DatabaseMetadata avant cela) sont vraiment pris en charge juste pour l'utilisation dans le code de validation de schéma et de migration de schéma (mise à jour). Il est passé dans ces appels. Je suppose que vous utilisez ceci d'une manière différente. Ce n'est pas forcément supporté, mais si vous voulez continuer de toute façon, installez simplement une instance org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.

+0

Merci Steve Ça marche – Sydubabu

+0

Bonjour @Sydubabu, j'essaie désespérément d'intégrer mes scripts DB dans la mise à jour du schéma d'Hibernate. Pourriez-vous donner un exemple d'utilisation de org.hibernate.tool.schema.extract.spi.DatabaseInformation? Je viens d'Hibernate 3.2.3-ga. Passer à 5.1.0-Final – prageeth