Gibt es einen einfachen Workflow ein Datenbankschema von Klassen mit Hibernate Mappings zu generieren?

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

  •  01-10-2019
  •  | 
  •  

Frage

Id wie meine Objekte zu definieren, dann Hibernate verwenden, um meine DDL daraus zu generieren. Aber es scheint, als ob die einzige wirkliche Workflow mit Hibernate ist ein datbase Schema zu erzeugen und dann umgekehrt es Ingenieur. Bin ich will etwas tun, das macht keinen Sinn?

War es hilfreich?

Lösung

Ja, es ist eine Eigenschaft hibernate.hbm2ddl.auto. Die Dokumentation sagt:

automatisch validiert oder Exporte Schema DDL in die Datenbank, wenn die Session erstellt wird. Mit create-Drop wird das Datenbankschema fallen gelassen werden, wenn die Session explizit geschlossen wird.

z. Validate | update | erstellen | create-Drop

Es gibt mehrere Möglichkeiten, um diese Eigenschaft zu definieren, je nachdem, wie Sie Ihre SessionFactory konfigurieren. Der Hibernatefunktion Weg ist, einfach hinzufügen:

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

Andere Tipps

Aber es scheint, wie die einzige wirkliche Workflow mit Hibernate ist ein Datenbankschema zu erzeugen und dann durch Reverse Engineering.

Nein, absolut nicht. Historisch gesehen, unterstützt Hibernate mehrere Ansätze:

  • Top down:. Mit dem Objektmodell starten, dann Mapping metatdata erstellen entweder mit XML-Dateien oder Anmerkungen und erzeugen dann das Schema hbm2ddl Tool Hibernate mit

  • Bottom up. Sie beginnen mit einer bestehenden Datenbank und erzeugen Mappings und Java-Klassen (oder nur kommentierten Java-Klassen) aus dem Datenbankschema mit hbm2hbmxml und hbm2java

  • Mittlere aus. Sie starten Hibernate XML-Zuordnungen schreiben und DDL und Java-Klassen generieren jeweils hbm2ddl und hbm2java mit

  • Treffen in der Mitte: Sie haben ein bestehendes Java-Modell und eine vorhandene Datenbank. Hibernate Tooling nicht viel Hilfe hier können, werden Sie sehr wahrscheinlich mit der Hand zu schreiben Zuordnungen haben und einige Umgestaltung der Datenbank tun, oder der Java-Code oder eine Art von Brücke benutzen. Dies ist die schlimmste Situation.

So, wie wir sahen, unterstützt Hibernate mehrere Workflows und bietet Werkzeuge für sie. Und in Ihrem Fall, Sie suchen das Tool namens hbm2ddl (auch als SchemaExport bekannt, die der Name der Klasse ist, deren Umsetzung). Es gibt mehrere Möglichkeiten, es zu benutzen:

  • Sie können SchemaExport programmatisch ausgeführt werden.
  • können Sie aktivieren den automatischen Export des Schemas bei SessionFactory Erstellungszeit durch die Eigenschaft hibernate.hbm2ddl.auto auf einen geeigneten Wert einstellen
  • Sie können die <hbm2ddl> Ant-Task verwenden

Referenzen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top