Ich sehe kaum einen Zeiger auf das folgende Problem im Zusammenhang mit Hibernate. Dies bezieht sich auf das Implementieren der Vererbung unter Verwendung einer einzelnen Datenbanktabelle mit einer Eltern-Kind- -Beziehung zu sich selbst. Zum Beispiel:Hibernate: Parent/Child-Beziehung in einer einzelnen Tabelle
CREATE TABLE Employee (
empId BIGINT NOT NULL AUTO_INCREMENT,
empName VARCHAR(100) NOT NULL,
managerId BIGINT,
CONSTRAINT pk_employee PRIMARY KEY (empId)
)
Hier wird die MANAGERID Säule kann null sein oder kann auf eine andere Zeile der Mitarbeiter Tabelle verweisen. Die Geschäftsregel setzt voraus, dass der Mitarbeiter über alle seine Mitarbeiter informiert ist und dass er über seinen/ihren Vorgesetzten Bescheid weiß. Die Geschäftsregeln ermöglichen auch Zeilen mit null managerId (der CEO der Organisation hat keinen Manager).
Wie können wir diese Beziehung in Hibernate abbilden, funktioniert die Standard-Viele-zu-Eins-Beziehung hier nicht? Vor allem, wenn ich meine Entitäten nicht nur als entsprechende Entity-Klasse "Employee" implementieren möchte, sondern mehrere Klassen wie "Manager", "Assistant Manager", "Engineer" usw., die jeweils von der Entity-Klasse "Employee" erben eine Entität mit Attributen, die nicht wirklich für alle gelten, zum Beispiel "Manager" erhält Perks, andere nicht (die entsprechende Tabellenspalte würde natürlich null akzeptieren).
Beispiel Code würde geschätzt werden (ich beabsichtige Hibernate 3 Anmerkungen).
Dupe: http://stackoverflow.com/questions/1862457/hibernate3-self-referencing-objects – hobodave
@hobodave: Ich hätte gerne ein Codebeispiel, das Annotationen (auf Hibernate 3) verwendet, das ist die Absicht. Würdest du zustimmen? – dchucks