Ich habe eine Vererbungsstruktur mit Klassen, sagen wir Parent (als Root-Klasse) und Child als Unterklasse.JPA 2.0: TYPE Ausdruck Ausnahme
Also mit JPA 2.0 nein, ich kann mit
SELECT p FROM Parent p WHERE TYPE(p) = Parent
Dies ist nur die übergeordnete Klasse wählt nur Einträge von Eltern zurückkehren sollte und nicht auch die Einträge des Kindes.
Aber mit meinem Eclipse 2.1.1 und MySQL auf Glassfish v3, ich folgende Fehlermeldung immer erhalten:
"Invalid Type Expression on [my.domain.Parent]. The class
does not have a descriptor, or a descriptor that does not use
inheritance or uses a ClassExctractor for inheritance".
Zusätzlich definiere ich kein ORM-Mapping von Hand. Dies alles geschieht automatisch bei der Bereitstellung, denke ich.
Gibt es etwas, das ich meiner Parent/Child-Klasse (eine Annotation, d. H.) Hinzufügen muss, um die Vererbungsstruktur zu deklarieren? (Aber ich denke, das ist nicht notwendig sein sollte, weil das Erbe von Java deklariert ist, oder?)
EDIT:
Ein wichtiger Aspekt, den ich habe, ist nicht erwähnt, dass ich das bin mit Vererbungsmethode "TABLE_PER_CLASS".
http://www.oracle.com/technetwork/articles/marx-jpa-087268.html Dieser Link ist in Thema 'Verwendung Tragbares Inheritance Mapping Strategies' erwähnt, dass' Selbst wenn Ihre JPA-Provider tun Implementieren Sie die optionale Vererbungsmappingstrategie "Tabelle pro konkrete Klasse", vermeiden Sie dies am besten, wenn Sie die JPA-Provider-Portabilität benötigen. "und hat die Einzelvererbung bevorzugt. – Ramsharan