Frage

Ich verwende Hibernate JPA.

Angenommen, ich habe diese Klassen:

AbstractPerson
|--> ConcreteEmployee
|--> ConcreteCustomer

Gibt es eine Möglichkeit die konkreten Klassen haben unabhängige IDs zu machen?

Ich bin mit InheritanceType.TABLE_PER_CLASS.

War es hilfreich?

Lösung

Aus dem Hibernate Annotations-Referenzhandbuch:

2.2.4.1. Tabelle pro Klasse

Diese Strategie hat viele Nachteile (esp. mit polymorphen Abfragen und Verbände) erklärt in der JPA spec, der der Ruhebezug Dokumentation, Hibernate in Aktion, und viele andere Orte. Hibernate Arbeit die meisten von ihnen um die Umsetzung dieser Strategie SQL UNION Abfragen. Es wird allgemein für die oberste Ebene der verwendet eine Vererbungshierarchie:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Flight implements Serializable { ... } 

Diese Strategie unterstützt eine Eins-zu-viele Verbände, sofern sie bidirektional. Diese Strategie funktioniert nicht den IDENTITY Generator unterstützen Strategie: Die ID muss geteilt werden über mehrere Tabellen. Folglich, wenn diese Strategie verwenden, sollten Sie nicht AUTO verwenden noch IDENTITY .

Also ich habe Angst, was Sie wollen nicht unterstützt wird (und ich schlage vor Gebrauch GenerationType.TABLE).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top