Y at-il un workflow simple pour générer un schéma de base de données à partir des classes avec correspondances mise en veille prolongée?

StackOverflow https://stackoverflow.com/questions/3674322

  •  01-10-2019
  •  | 
  •  

Question

Id comme pour définir mes objets puis utiliser mise en veille prolongée pour générer mon ddl de cette situation. Mais il semble que le seul véritable flux de travail avec mise en veille prolongée est de générer un schéma datbase puis l'ingénierie inverse il. Suis-je envie de faire quelque chose qui n'a pas de sens?

Était-ce utile?

La solution

Oui, il y a un hibernate.hbm2ddl.auto de propriété. La documentation dit:

  

valide automatiquement ou de l'exportation DDL à la base de données lorsque la SessionFactory est créée. Avec create-drop, le schéma de base de données sera lorsque la SessionFactory est fermée explicitement.

     

par exemple. validate | mise à jour | créer | create-drop

Il y a plusieurs façons de définir cette propriété, selon la façon dont vous configurez votre SessionFactory. La façon de mise en veille prolongée est d'ajouter simplement:

<property name="hibernate.hbm2ddl.auto">update</property>

Autres conseils

  

Mais il semble que le seul véritable flux de travail avec mise en veille prolongée est de générer un schéma de base de données et l'ingénierie inverse il.

Non, absolument pas. Historiquement, Hibernate prend en charge plusieurs approches:

  • De haut en bas:. Vous commencez avec le modèle d'objet, puis créez metatdata de cartographie soit avec des fichiers XML ou des annotations, puis générer le schéma en utilisant l'outil de hbm2ddl de mise en veille prolongée

  • Bottom up:. Vous commencez avec une base de données existante et de générer des correspondances et des classes Java (ou tout simplement des classes Java annotées) à partir du schéma de base de données à l'aide hbm2hbmxml et hbm2java

  • Moyen sur:. Vous commencez à écrire être mapping XML Hibernate et générer des classes Java en utilisant DDL et respectivement hbm2ddl et hbm2java

  • Rendez-vous au milieu: Vous avez un modèle Java existant et une base de données existante. outillage Hibernate ne peut pas aider beaucoup ici, vous aurez très probablement à mappings d'écriture à la main et faire quelques refactoring de la base de données ou du code Java ou utiliser une sorte de pont. Ceci est la pire situation.

Alors, comme nous l'avons vu, Hibernate prend en charge plusieurs flux de travail et fournit des outils pour eux. Et dans votre cas, vous êtes à la recherche de l'outil appelé hbm2ddl (également connu sous le nom SchemaExport, qui est le nom de la classe mise en œuvre). Il y a plusieurs façons de l'utiliser:

  • Vous pouvez exécuter SchemaExport programme.
  • Vous pouvez activer l'exportation automatique du schéma au moment de la création de SessionFactory en définissant la propriété hibernate.hbm2ddl.auto à une valeur appropriée
  • Vous pouvez utiliser la tâche Ant <hbm2ddl>

Références

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top