Persistenz

Klassen-Einstellungen

Dieser Teil der Dokumentation ist noch im Aufbau. Wir beginnen damit, neue Features zu dokumentieren und ergänzen nach und nach die bestehenden Features.

Persistenztyp

Ableitungstrategie

Die Ableitungsstrategie bestimmt, wie mit Ableitungen von Vertragsklassen umgegangen wird. Dabei gibt es die Wahl, die Daten aller Subklassen in einer gemeinsamen Tabelle abzulegen (SINGLE_TABLE) oder je Subklasse eine zusätzliche Tabelle anzulegen (JOINED_SUBCLASS).

Alles in eine Tabelle

Mit der Ableitungsstrategie SINGLE_TABLE werden die Werte von Objekten aller Subklassen in einer gemeinsamen Tabelle abgelegt. Dazu werden auch für Attribute einzelner Ableitungen Spalten in der Tabelle der Basisklasse angelegt, die für Objekte anderer Ableitungen dann ggf. leer bleiben.

Diskriminator

Um beim Auslesen eines Objekts aus der Datenbank bestimmen zu können, welche Ableitung der Basisklasse instantiiert werden soll dient eine spezielle Spalte, Diskriminator genannt. Im entsprechenden Abschnitt der Persistenzeinstellungen kann in der Basisklasse festgelegt werden, dass dort die Diskriminatorspalte definiert wird. Dabei kann der Name und auch der Datentyp für die Spalte gewählt werden - üblich ist hier STRING. Um den Speicherverbrauch in der Datenbank nicht unnötig in die Höhe zu treiben, kann auch die Länge der Spalte konfiguriert werden. In den Ableitungen kann dann jeweils ein eindeutiger Wert für diese Spalte eingestellt werden, der maximal die ggf. konfigurierte Länge hat.