Hibernate 层次结构中每个父级使用鉴别器的联合继承策略中的多级继承
考虑一下我下面的课程 产品(抽象根类) 汽车(扩展产品的另一个父类) Speeder(扩展汽车等级的最后一个孩子) 当JPA使用鉴别器将我的对象模型映射到我的数据模型时,在单亲到子层次结构中使用鉴别器对我来说很好,鉴别器值已正确设置,但随着我添加另一层次结构,即Speeder extends Car extends Product(Speeder extends汽车扩展产品),鉴别器值或工作不正常Hibernate 层次结构中每个父级使用鉴别器的联合继承策略中的多级继承,hibernate,jpa,inheritance,discriminator,joined-subclass,Hibernate,Jpa,Inheritance,Discriminator,Joined Subclass,考虑一下我下面的课程 产品(抽象根类) 汽车(扩展产品的另一个父类) Speeder(扩展汽车等级的最后一个孩子) 当JPA使用鉴别器将我的对象模型映射到我的数据模型时,在单亲到子层次结构中使用鉴别器对我来说很好,鉴别器值已正确设置,但随着我添加另一层次结构,即Speeder extends Car extends Product(Speeder extends汽车扩展产品),鉴别器值或工作不正常 如果我仅在单个继承中使用鉴别器(例如,从子继承到父继承)使用联合继承,鉴别器值将正确映射到它们
如果我仅在单个继承中使用鉴别器(例如,从子继承到父继承)使用联合继承,鉴别器值将正确映射到它们所尊重的列中,但现在我添加了另一个层次结构,Speeder的鉴别器值位于产品表的鉴别器列,而汽车表的鉴别器列保留为空值,我希望您能理解我在这里试图实现的目标,这可能吗?有什么解决办法吗?有这么多的例子,但我找不到一个确切的例子来说明更深层的层次结构,像这样的例子,但有更深层的层次结构,周围的例子只有简单的层次结构,与其他使用这种策略的例子几乎相同。任何帮助或启发都将不胜感激。谢谢,有什么建议可以让这种设计成为可能吗?如果不可能,请提供任何建议?谢谢
@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;
}
@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;
}
@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;
}