[Hibernate] Nachträgliches Hinzufügen einer Spalte

  • Themenstarter Themenstarter mg_666
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

mg_666

Gast
Servus,

ich stehe vor folgendem Problem. In einer Tabelle soll eine zusätzliche Spalte hinzugefügt werden die vom Typ Boolean ist. In der Tabelle sind jedoch schon Datensätze vorhanden. Wenn ich nun die MappingKlasse um diese Spalte erweitere wird zwar das neue Datenfeld in der Tabelle hinzugefügt. Jedoch wird diese nicht mit einem Default-Wert bei den bereits bestehenden Datensätzen vorbelegt. Die Folge ist, dass es zu Programmabstürzen kommt wenn an dieses Feld ausgelesen wird (z.B. getBoolean ==> kommt ne Null).
Gut, ich habe es im Moment so gelöst und frage es nach der Null ab und schicke dementsprechend einen richtigen Boolean-Wert.

Jedoch wollte ich nun wissen ob es möglich ist, Hibernate mitzugeben das er alle Datensätze bei der dementsprechenden Spalte einen Wert wie false oder true hinterlegt wenn die neue Spalte erzeugt wird.
 
Update-Schema generieren lassen und ein Updatestatement händisch für den Boolean schreiben.
Ausführen, Applikation neu starten, fertig.

Hibernate kann viel, aber nicht alles.

ms
 
Diese Antwort wollte ich jetzt eigentlich nicht hören 🙂
Schade und Danke
Gruß
mg
 
Hibernate kann doch alles 🙂

@Column(name="visible", columnDefinition="boolean default true")
private Boolean visible = true;
 
mg_666 hat gesagt.:
Hibernate kann doch alles 🙂

@Column(name="visible", columnDefinition="boolean default true")
private Boolean visible = true;
Was machst du mit Datensätzen die schon vorhanden sind?
 
Die ändert Hibernate automatisch, hätte mich auch gewundert wenn das nicht gingen würde.
Ich nehme mal an das Hibernate auch nur ein ALTER TABLE auf die Tabelle ausführt.
 
ALTER TABLE ändert das Schema, nicht die Daten in den Tabellen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben