Ich habe ein Problem mit dem expliziten Polymorphismus des Winterschlafs. Ich habe die Annotation des Polymorphismus benutzt und sie auf explicit gesetzt, aber mit get () und collections in gemappten Klassen bekomme ich immer alle Unterklassen. Ich sehe alle Unterklassen mit linken Join in der Hibernate "show_sql" -Ausgabe. Was ist das Problem? Verstehe ich die Dokumentation falsch? Oder ist es ein Fehler im Winterschlaf 4? Ich habe kein Beispiel mit Hibernate 4 und Polymorphismus-Annotation gesehen.
%Vor%Es ist ein gemeinsames Missverständnis, ich hatte auch einmal die gleichen Zweifel.
Das ist es, was wirklich im expliziten Polymorphismus passiert.
Polymorphismus explizit gilt nur für root-Entitäten und verhindern fragt die Benennung einer (nicht zugeordneten) Oberklasse ab, um zugeordnete Unterentitäten zurückzugeben
In Ihrem Fall, wenn Entity-Klasse Knoten nicht zugeordnet und Personen waren Wenn der Polymorphismus explizit ist, dann würden Knoten keine Personen zurückgeben Elemente .
Schau dir diesen Code an ..
%Vor%Es ist im Grunde das Gegenteil von dem, was alle im Kopf haben. !!
Wenn Sie sich die Definition von PolymorphismType.EXPLICIT es sagt:
EXPLICIT: Diese Entität wird nur abgerufen, wenn explizit gefragt wird.
Um die Unterklassen auszublenden, müssen Sie die Unterklassen mit EXPLICIT und nicht mit der Basisklasse annotieren.
Tags und Links hibernate annotations hibernate-4.x polymorphism