连接继承策略中的多级继承使用层次结构中每个父级的鉴别器

Jef*_*eff 5 inheritance hibernate jpa joined-subclass discriminator

考虑下面的课程

产品(抽象根类)

@Entity
@Table(name="PRODUCT")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="PRODUCT_TYPE")
public abstract class Product {

    @Id
    @GeneratedValue
    @Column(name = "product_ent_id", insertable = false)
    private int productEntId;
}
Run Code Online (Sandbox Code Playgroud)

汽车(扩展产品的另一个父类)

@Entity
@Table(name="CAR")
@DiscriminatorValue(value="Car") 
@PrimaryKeyJoinColumn(name="car_ent_id") 
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="CAR_TYPE") 
public abstract class Car extends Product {

    @Column(name = "car_ent_id", insertable = false, updatable = false)
    private int carEntId;
}
Run Code Online (Sandbox Code Playgroud)

Speeder(扩展Car的层次结构的最后一个孩子)

@Entity
@Table(name="SPEEDER")
@DiscriminatorValue(value="Speeder") 
@PrimaryKeyJoinColumn(name="speeder_ent_id")
public class Speeder extends Car {

    @Column(name = "speeder_ent_id", insertable = false, updatable = false)
    private int speederEntId;
}
Run Code Online (Sandbox Code Playgroud)

当JPA使用鉴别器将我的对象模型映射到我的数据模型时,在单个父对子层次结构中使用鉴别器对我来说很好,鉴别器值被正确设置,但是当我添加另一层次的层次结构时,Speeder-extends- Car-extend-Product,鉴别器值或不正常,

产品表 CAR表 SPEEDER表

如果我只在单个继承中使用带有鉴别器的连接继承(例如,子对父),则鉴别器值正在其所尊重的列中正确映射,但现在我添加了另一个层次结构,Speeder的鉴别器值是一个正在放置在产品表的鉴别列,和鉴别列中的车表被保留为空值,我希望你能明白我想在这里实现,这可能吗?任何工作?周围有很多例子,但是我找不到一个能够说明更深层次结构的例子,像这样的例子加入了继承表但是层次更深,周围的例子只有简单的层次结构,而其他人使用这种层次结构几乎相同战略.任何帮助或启发将不胜感激.