Hibernate: Eltern - /Kind-Beziehung in einem single-table

Ich kaum sehen keine Zeiger auf das folgende problem in Verbindung mit Hibernate. Dies bezieht sich auf die Umsetzung der Vererbung mit einer einzelnen Datenbank-Tabelle mit einer Eltern-Kind
Beziehung zu sich selbst. Zum Beispiel:

CREATE TABLE Employee (
  empId BIGINT NOT NULL AUTO_INCREMENT,
  empName VARCHAR(100) NOT NULL,
  managerId BIGINT,
  CONSTRAINT pk_employee PRIMARY KEY (empId)
)

Hier, die managerId Spalte null sein darf, oder kann auf eine andere Zeile der Mitarbeiter Tabelle. Business-Regel muss der Mitarbeiter wissen über alle seine reportees und für ihn zu wissen, über seine/Ihre manager. Die business-Regeln erlauben auch die Zeilen haben null managerId (CEO der organisation, die nicht mit einem manager).

Wie wir Karte diese Beziehung in Hibernate, standard viele-zu-eins-Beziehung hier nicht funktioniert? Vor allem, wenn ich Sie umsetzen wollen, meine Einheiten nicht nur als eine entsprechende "Mitarbeiter" Entity-Klasse, sondern mehrere Klassen, wie "Manager", "Assistant Manager", "Ingenieur" usw., jedes Erben von "Mitarbeiter" super-entity-Klasse, eine Entität mit Attributen, die eigentlich gar nicht für alle gelten, zum Beispiel "Manager", bekommt Vergünstigungen, andere nicht (die entsprechenden Tabellen-Spalte die null-Werte akzeptieren natürlich).

Beispiel-code wäre sehr hilfreich (ich beabsichtige zu verwenden, Hibernate 3 annotations).

InformationsquelleAutor Dchucks | 2010-03-11
Schreibe einen Kommentar