SQL Schema exportieren über Hibernate

Java4U

Grünschnabel
Hallo,

hat Jemand von Euch Erfahrung mit dem generieren eines Datenbankschema aus Hibernate?

Ich habe folgendes:
-Bestehende Entity Klassen EJB3.0 mit Anotations versehen.
-JBoss 4.2.3
-Eine bestehende DB ORACLE.
-Eine zweite DB MS SQL-SERVER

ich möchte nun in meiner persitence.xml die property "hibernate.hbm2ddl.auto" herausnehmen.
1. Damit mir nicht die DB versaut wird, wenn mal eine Entity nicht zur DB passt.
2. Da ich teilweise die DB schon vorbereiten möchte, bevor der JBoss startet.

Nun meine Frage:

1. Bekommt man die Create-Table-Statements irgendwie mit Hibernate heraus.
ich habe auch schon mal mit den Hibernatetools herum gespielt. bin aber zu keinem brauchbaren ergebnis gekommen.
2. lässt Sich irgendwo ein Updatescript berechnen? so zu sagen Differenz zwischen Entities und Tabellen?

Danke schon mal

Gruß
Java4U
 
Hi,

das Property hat 4 mögliche Werte
Die Doku hat gesagt.:
Automatically validates or exports schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly.

e.g. validate | update | create | create-drop
Kannst Du im Kapitel 3 der Doku überfliegen.

Mit update versucht Hibernate zu erkennen, ob z.b. in deinem Schema noch Spalten fehlen und fügt diese hinzu. Ich würde außer validate für ein produktives System aber keinen der Werte empfehlen.

Gruß Sen
 
Danke,

ja ich kenne die Werte der Property, ich glaube "validate" ist der default falls die Property nicht gesetzt wird.

Was ich brauche ist aber ein manueller Export des DB schemas aus den Beans heraus.

Ich denke ich werde mal ein bischen mit der Methode SchemaExport aus dem Hibernate3 Package herumspielen.

Ich werde meine Erfahrungen mal hier pasten.

Gruß

Java4U
 
Hi,

sorry, dann hatte ich Dich missverstanden. Wegen deiner Frage schaue ich mich mal um. Möchtest Du das dann in die Konsole ausgegeben haben?

Ad hoc: Ich mache so etwas immer dem SQL Developer oder mit Toad, je nachdem was verfügbar ist. Mit dem (Oracle) SQL Developer geht es per Menupünkt, siehe im an gehangenen Bild. Fände das auch besser handhabbar als es aus der Konsole zu kopieren :)

Das Thema (Schema Export - allerdings nicht mittels Hibernate) wurde auch schon im Forum diskutiert:
http://www.tutorials.de/forum/relat...3-oracle-db-struktur-als-sql-exportieren.html

Edit: Die Option "Datenbank-Diff" hört sich auch nach dem an, was Du mit Updateskript meinst ...
 

Anhänge

  • ddl_export.png
    ddl_export.png
    20 KB · Aufrufe: 186
Zuletzt bearbeitet:
Hi Sentoo,
Du hast einen neueren Toad. ich quäle mich noch mit der Version 9.0.1.8 herum. Egal, mit dem ginge das auch.

Aber Vielleicht habe ich mich auch verkehrt ausgedrückt.

Ich möchte mir eigentlich die DB Scripte von Hibernate erzeugen lassen, da ich an verschiedene Datenbanken heran gehe. D.h. verschiedene DB Dialects. Sowas ähnliches wie:
Code:
 public String generateSQLSchema(List<Object> entity, DialectEnum dialect);
ok ok, ich weiß da muss ich etwas selbst dafür entwickeln.

aber wie gesagt ich glaube mit der Klasse net.sf.hibernate.tool.
hbm2ddl.SchemaExport komme ich glaube ich weiter.

Und ich hätte gerne sowas wie
Code:
public String generateUpdatescript(List<Object> entity, DialectEnum dialect, Connection con);

Aber ich glaube das ist schon machbar.

Danke trotzdem

Java4U
 
Hi,

ich habe kein Toad, der Screenshot ist aus dem SQL Developer. Ist für lau, brauchst Dich nur im OTN zu registrieren.

Zumal Oracle Sun geschluckt hat, evtl. gar nicht das falscheste ;)
 

Neue Beiträge

Zurück