ich eine Struktur wie diese:MultiDiscriminator Spalt in Hibernate Vererbungshierarchie
abstrakte Klasse A
abstrakte Klasse B erstreckt A
abstrakte Klasse C erweitert B
Das ist meine eigentliche Abbildung ist:
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@Table(name = "TAB_A")
@DiscriminatorColumn(name="DISCRIMINATOR_A", discriminatorType=DiscriminatorType.STRING)
public abstract class A {
}
@Entity
@DiscriminatorValue("VALUE")
@SecondaryTable(name = "TAB_B", pkJoinColumns = {@PrimaryKeyJoinColumn(name="ID_A")})
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="DISCRIMINATOR_B",discriminatorType=DiscriminatorType.STRING)
public abstract class B extends A
{
}
@Entity
@DiscriminatorValue("VALUEB")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public abstract class C extends B
{
}
Ich habe eine dicriminator Spalte zwischen A und B, die discriminatorA ist.
Ich habe eine Dicriminator-Spalte zwischen B und C, die discriminatorB ist.
Die Vererbung zwischen A und B funktioniert. Die Vererbung zwischen B und C funktioniert nicht. Ich las diesen Punkt:
11.1.10 DiscriminatorColumn Annotation
Für die SINGLE_TABLE Mapping-Strategie und in der Regel auch für die zusammengefügten Strategie wird die Persistenz-Provider eine Typdiskriminator Spalte. Die DiscriminatorColumn-Annotation wird verwendet, um die Diskriminatorspalte für die SINGLE_TABLE- und JOINED-Vererbungszuordnungsstrategien zu definieren.
Die Strategie und die Diskriminatorspalte werden nur im Stammverzeichnis einer Entitätsklassenhierarchie oder Subhierarchie angegeben, in der eine andere Vererbungsstrategie angewendet wird.
Hat jemand eine Idee, wie man dieses Mapping macht?
Danke.
So ermöglicht JPA 1 Diskriminator pro Vererbungsbaum. – DataNucleus