Bonjour à tous,

J'ai actuellement un projet qui utilise Hibernate. Donc j'ai mes entités JPA avec toutes les annotations qui vont bien et la base de données est initialisée par un script, bref tout va bien, mon programme fonctionne parfaitement (interaction avec la base sans souci).

J'aimerais pouvoir me simplifier la vie !

Pour l'instant, j'ai un script (à côté de mon appli) qui initialise la base de données (tables, contraintes, etc). J'aimerais pouvoir vérifier au lancement du programme si la base de données est vide et si oui, l'initialiser directement en fonction de mes entités JPA (pas avec du code SQL ou que sais-je). J'ai fais des recherches et lu la FAQ et apparemment SchemaExport peut le faire.

Est-ce qu'avec SchemaExport je peux initialiser une base de données vide? Si oui, il suffit de lui passer le fichier de config où sont (entre autre) référencées les classes JPA pour qu'il construise les tables avec les bonnes contraintes?

Je préfère être sûr avant de tout casser

Autres questions: Comme ma base de données ainsi que mon appli vont évoluées, j'aimerais que lorsqu'une nouvelle version de mon programme soit utilisé, qu'il puisse détecter la vieille base de données (pour demander à l'utilisateur un fichier d'upgrade sur mesure pour Liquidbase par exemple). Est-ce qu'un SchemaValidator avec sa méthode validate() compare la base de données avec les classes JPA? J'avoue que la doc ne m'aide pas trop...

Merci d'avance pour votre temps et vos réponses et n'hésiter pas à me faire part de vos expériences (oui je débute avec Hibernate )