nur bestimmte Mapping-Dateien berücksichtigen (Hibernate)

Status
Nicht offen für weitere Antworten.

jk84

Mitglied
Hallo Zusammen,

bin neu in der Hibernate Welt, also entschuldigt meine vielleicht schlechte Ausdrucksweise.

Ich hab hier eine relativ große Datenbank vorliegen die aus Hibernate mapping xml Dateinen generiert wird. Es sind 85 Tabellen also auch 85 XML Mappings. Diese 85 Mapping Dateien werden beim Start des Mappings alle gerücksichtigt.
Jetzt sollen aber für ein Update der Datenbank nur einige der Tabellen neu erzeugt werden. Habt ihr ne Idee für mich wie ich das am besten programmatisch lösen kann. Gibt es in Hibernate Funktionen oder sonstiges für so was?

Vielen Dank

Gruß jk84
 
S

SlaterB

Gast
deine Betonung auf 'nur einige' verwirrt etwas, da 'Tabellen neu erzeugen' für sich schon verrückt genug ist

was passiert da? was hat das mit Hibernate zu tun, außer das man die Mappings und Persitenzklassen hoffentlich genauso anpasst,
was hat das mit der Anzahl der Tabellen zu tun?
was soll diese Funktion leisten?
 

jk84

Mitglied
Die Sache ist die.
Wenn sich was an einer der 85 Tabellen in der Datenbank ändert, (z.B. Attribut weg oder neues hinzu) wird diese Änderungen immer in der entsprechenden Hibernate Mapping XML vorgenommen. Alle Hibernate XMLs haben immer die aktuellste Struktur. Ab einer gewissen Anzahl von Änderungen sollen diese dann auf die Datenbank überspielt (per mapping) werden.
Dazu werden alle Tabellen die sich geändert haben in der DB umbenannt. Dann sollen nur die Tabellen durch mapping neu erzeugt werden die auch geändert wurden. Und das ist genau das Problem. Wie sage ich Hibernate, dass er nur die Tabellen neu erzeugt an denen Änderungen vorgenommen wurden?
Es gibt eine Liste von den Tabellen die geändert wurden. Diese Liste müsste Hibernate dann verarbeiten.

Danke für deine Hilfe

Gruß jk84
 
S

SlaterB

Gast
nun ja, ich kann nicht helfen,
dass irgendjemand anders als ein eigenes SQL-Statement Tabellen ändert oder erzeugt ist mir neu,

kommt das so häufig vor, dass man das automatisieren muss?..
selbst wenn, dann vielleicht nur die SQL-Code-Generierung,
ausführen sollte man das doch selber, dann kannst du die Tabellen, die du nicht magst, aussortieren
 

DaKo

Bekanntes Mitglied
jk84 hat gesagt.:
Ab einer gewissen Anzahl von Änderungen sollen diese dann auf die Datenbank überspielt (per mapping) werden.

Warum erst dann? Warum nicht einfach nach dem Ändern der Mappings? Hibernate passt die DB dann von ganz alleine an (wenn so konfiguriert ;) )
 

jk84

Mitglied
Ich kann dir leider nicht ganz folgen???:L
Aber es muss automatisiert werden ja. Der Ablauf des Programms sollte schon wie oben von mir beschrieben vonstatten gehen.
Es geht nur darum Hibernate nicht alle 85 XML Dateien bekannt zu machen oder nur eine Liste von z.B. 10 die sich geändert haben.
 

jk84

Mitglied
DaKo hat gesagt.:
jk84 hat gesagt.:
Ab einer gewissen Anzahl von Änderungen sollen diese dann auf die Datenbank überspielt (per mapping) werden.

Warum erst dann? Warum nicht einfach nach dem Ändern der Mappings? Hibernate passt die DB dann von ganz alleine an (wenn so konfiguriert ;) )

So weit mir bekannt ist kann Hibernate aber keine Löschvorgänge von Attributen ausführen.
Zudem gibt es auch noch kompliziertere Änderungsvorgänge bei denen neue Tabellen erstellt und diese mit Werten aus verschiedenen anderen gefüllt werden müssen.
 

DaKo

Bekanntes Mitglied
jk84 hat gesagt.:
So weit mir bekannt ist kann Hibernate aber keine Löschvorgänge von Attributen ausführen.

und? Wo liegt jetzt das Problem? Wenn in der DB nicht verwendete Spalten sind, stört das jemanden?

jk84 hat gesagt.:
Zudem gibt es auch noch kompliziertere Änderungsvorgänge bei denen neue Tabellen erstellt und diese mit Werten aus verschiedenen anderen gefüllt werden müssen.

neue Tabellen legt Hibernate an und diese mit Daten zu füllen bekommst du mit Sicherheit hin (ist nicht böse gemeint).
Für sowas habe ich immer ein DBInit-Klasse, die mir die einzelnen Tabellen mit werten füllt.
 

jk84

Mitglied
DaKo hat gesagt.:
Wenn es die Tabellen 1, 3, 4 und 6-44 schon gibt, werden diese auch nicht neu angelegt ;)

Jo, das stimmt. An die Lösung hab ich auch schon gedacht. Das sollte gehen meinst du?
Aber für meinen Chef wäre es für spätere Änderungen auch interessant ob die Möglichkeit besteht einzelne Tabellen neu zu generieren. Auch um sich Optionen offen zu halen bei der Entwicklung des Programms.
 

DaKo

Bekanntes Mitglied
Einzelne Tabellen können doch mittels eines einfach "Drop"-Statements gelöscht werden und beim starten legt Hibernate diese dann wieder an ;)
 

jk84

Mitglied
DaKo hat gesagt.:
Einzelne Tabellen können doch mittels eines einfach "Drop"-Statements gelöscht werden und beim starten legt Hibernate diese dann wieder an ;)

Klar, dann sind aber auch die Daten aus der gelöschten Tabelle weg :wink:
Das soll natürlich nicht sein.
Ich sehe dabei aber noch ein anderes Problem und zwar, werden noch vor dem umbennenen alle FK Constraints aus der DB gelöscht. wenn ich dann nach dem umbenennen das mapping über alle Tabellen laufen lasse, werden diese wieder mit angelegt (für alle Tabellen). Zusätzlich werden auch die neunen Tabellen erzeugt die dann aber leer sind.
=> es gibt dann Tabellen in der DB die einen FK auf eine leere Tabelle haben. geht das?? ???:L
 

DaKo

Bekanntes Mitglied
jk84 hat gesagt.:
Klar, dann sind aber auch die Daten aus der gelöschten Tabelle weg icon_wink.gif
Das soll natürlich nicht sein.

Warum sollen die Tabellen dann gelöscht werden?

jk84 hat gesagt.:
es gibt dann Tabellen in der DB die einen FK auf eine leere Tabelle haben. geht das??

keine Ahnung. Bin nie in die Verlegenheit gekommen.
=> ausprobieren ;)
 

jk84

Mitglied
DaKo hat gesagt.:
jk84 hat gesagt.:
Klar, dann sind aber auch die Daten aus der gelöschten Tabelle weg icon_wink.gif
Das soll natürlich nicht sein.

Warum sollen die Tabellen dann gelöscht werden?

Sie wird ja nicht direkt gelöscht, sondern nur es werden nur Attribute geändert, oder Attribute in neue Tabellen ausgelagerd. Natürlich müssen die Werte dabei erhalten bleiben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JSF Bestimmte Daten aus der Datenbank anzeigen lassen Allgemeines EE 13
M JSF Nur bestimmten Rollen bestimmte Inhalte anzeigen... Allgemeines EE 2
M Spring Statisches Mapping, verschiedene Entities Allgemeines EE 1
OnDemand REST Json Response Mapping ist null Allgemeines EE 2
M Mapping zwischen JPA-Entitäten und Datentypen von Webservices Allgemeines EE 1
K Servlet-Mapping Allgemeines EE 9
Antoras servlet-mapping auf dynamische URLs Allgemeines EE 17
tagtraeumer fillter-mapping: möglichkeiten mit url-pattern Allgemeines EE 2
F [Hallo] Frage zu Hibernate Mapping und Vererbung Allgemeines EE 3
G Hibaernate-Mapping Allgemeines EE 5
S Hibernate Mapping Problem Allgemeines EE 3
S Action-Mapping? Was ist das? Allgemeines EE 3
T Servlet-Mapping und Welcome-File-List unter Websphere? Allgemeines EE 2
J Webanwendung mit intensiver Nutzung von Dateien Allgemeines EE 8
A Speichern von mehreren Dateien (BLOBS) Allgemeines EE 8
S Umgang mit hochgeladenen Dateien Allgemeines EE 18
B Tomcat6/axis1.4 kann nicht auf Dateien zugreifen Allgemeines EE 3
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
D Wohin mit Resourcen (Bilder, txt Dateien) im Application Client Allgemeines EE 3
T Apache Lucene Dateien verändern Allgemeines EE 6
Q Dynamische Formulare aus xml Dateien erstellen... Allgemeines EE 8
R Zugriff auf Dateien in Meta/Web-Inf Verzeichnis Allgemeines EE 7
V Lokale Dateien ausführen, IE,FF Allgemeines EE 2
K Zugriff auf Dateien beschränken Allgemeines EE 2
A Tomcat - Findet meine Dateien nicht ? Allgemeines EE 10
U Instanzen von *.war Dateien auslesen und steuern. Allgemeines EE 4
G WEB-INF/classpath funktioniert nicht für Dateien Allgemeines EE 2
padde479 Verzeichnisse und Dateien mit Passwort schützen bei Tomcat 5 Allgemeines EE 5
F relativer Pfad in Servlets für Dateien Allgemeines EE 2
FsMarine Probleme beim ausführen von JSP dateien unter Tomcat Allgemeines EE 4
A Eclipse: EJB-1.1-Dateien importieren und bearbeiten Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben