2010-12-11 8 views
1

Ich arbeite an einem modularen Webprojekt mit Standardfunktionalität, die mit einem "plugin", einer zusätzlichen Java-Bibliothek, erweitert werden kann.2 Hibernate-Entitäten in derselben Datenbanktabelle. Ist das möglich?

Das "Kern" -Projekt kennt eine Benutzerentität, die der Benutzertabelle zugeordnet ist. Das Plugin-Projekt erweitert diesen Benutzer um einen ExtendedUser, der ebenfalls derselben Tabelle zugeordnet ist.

Beide Entitäten sollten koexistieren, wobei der Benutzer nur einige der Spalten kennt.

Beide Entitäten sind in verschiedenen Bibliotheken deklariert, die in derselben Klasse enthalten sind.

Wie funktioniert das mit Hibernate?

Danke!

+0

Ich fragte mich, ob Sie irgendwelche Fortschritte mit diesem haben .. – octav

+0

Das [SO Frage] (http://stackoverflow.com/questions/1667930/2-jpa-entities-on-the-same-table) scheint zu rede mehr oder weniger von der gleichen Sache ... –

Antwort

3

Angenommen, Sie meinen, dass ExtendedUser eine Klasse ist, die User erweitert, dann können Sie die Vererbungsstrategie "Tabelle-pro-Klasse-Hierarchie" von Hibernate verwenden. Siehe docs here. Verwenden Sie Annotationen, verwenden Sie InheritanceType.SINGLE_TABLE (siehe Dokumente 2.2.4.2 here).

+0

Der Benutzer sollte jedoch weiterhin als eigene Entität koexistieren und von anderen Entitäten referenziert werden. Da die mit @Interitance (strategie = InheritanceType.SINGLE_TABLE) markierte Tabelle nicht mit @Entity gekennzeichnet ist, wird sie nicht als eigene Identität erkannt. – Toby

1

Ich habe einmal versucht, eine Tabelle zu zwei Java-Entitäten zuzuordnen (ohne ein Vererbungsschema). Ich wollte nur einige verschiedene Mappings ausprobieren und gleichzeitig die alte Entität beibehalten.

Die Sache ist, wenn Ihr Benutzer und ExtenderUser beide die gleiche Sammlung von Entitäten X teilen, wird sich Hibernate darüber beschweren, nicht zu wissen, an welche Entität X angeschlossen ist: Benutzer oder ExtenderUser.

Also unterm Strich, in meinem Fall hat es nicht funktioniert, und es ist richtig, nicht zu.

Ich habe kein Vererbungsschema versucht, aber von dem, was Sie sagen, Sie auch nicht.

Verwandte Themen