Migrate from ToPIA 3.x to ToPIA 4.0
This documentation section is french-only
Gestion des dépendances
Java 11 est désormais nécessaire.
ToPIA 4.0 nécessite des versions minimum de Eugene et Hibernate. Vous devez utiliser les version suivantes :
- Eugene >= 3.0
- Hibernate >= 6.3.1.Final
Des dépendances transitives de ToPIA on changé, il faut remplacer
par
Et remplacer
par
Nom de colonnes désormais interdits
Il semble qu’Hibernate ne fonctionne plus quand des noms de colonnes sont des mot-clés SQL. Par exemple key
fonctionnait mais ne fonctionne plus, il faut changer le modèle.
Déclaration des functions SQL
Si vous avez défini des fonctions SQL dans la base de données, vous avez les avez déclarées dans le Dialect
Hibernate 5 de la façon suivante.
Avant :
Après :
Création de LOB Hibernate
Avant :
Après :
Changement des directives de configuration
Les directives de configuration des la connexion JDBC de Hibernate sont à remplacer au profit de celles normées en jakarta.*
hibernate.connection.driver_class
→jakarta.persistence.jdbc.driver
hibernate.connection.username
→jakarta.persistence.jdbc.user
hibernate.connection.password
→jakarta.persistence.jdbc.password
hibernate.connection.url
→jakarta.persistence.jdbc.url
Au delà de ces directives, tout ce qui est en hibernate.*
peut être à remplacer en jakarta.persistence.
, à vérifier selon chaque paramètre utilisé.
Modifications à faire si vous utilisez bean-validation
Passer de javax.validation
à jakarta.validation
dans les directives de configuration.
Ajouter
Attention aux appels de méthodes visant à forcer Hibernate à charger des champs en lazy
Des erreurs peuvent apparaître à l’exécution à cause de champs qui ne seraient pas initialisés. Si vous faisiez des appels de méthodes sur des champs d’entités dans l’intention de forcer Hibernate à charger des champs avant de fermer une transaction, il est possible que ces appels ne fonctionnent plus car Hibernate 6 est plus efficace et peut éviter de faire ces chargement inutiles. Une solution est de toujours appeler ces getters mais d’appeler org.hibernate.Hibernate#initialize(Object)
dessus pour forcer le chargement.
TopiaMigrationEngine déprécié
Il fonctionne toujours mais est déprécié. Migrez vers Flyway ou Liquibase.