0
我有這樣的結構:MultiDiscriminator柱
抽象類A
抽象類B擴展甲
抽象類別C延伸乙
這是我的實際映射:
@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
{
}
我在A和B之間有一個dicriminator列,它是discriminatorA。
我在B和C之間有一個判別器列,它是discriminatorB。
A和B之間的繼承工作。 B和C之間的繼承不起作用。我讀了這一點:
11.1.10 DiscriminatorColumn註釋
對於SINGLE_TABLE映射策略,通常也可以通過所加入的策略,持久性提供程序將使用一個類型鑑別列。 DiscriminatorColumn標註用於定義SINGLE_TABLE和JOINED繼承映射策略的標識符列。
策略和鑑別器列僅在應用不同繼承策略的實體類層次結構或子層次結構的根中指定。
有沒有人有關於如何使這種映射的想法?
謝謝。
因此,JPA允許每個繼承樹使用1個鑑別器。 – DataNucleus 2012-03-27 13:52:30