java Hibernate继承表每类和单表混合
我正在开发网上商店,我需要Hibernate映射方面的帮助。我继承了以下遗产:
BaseProduct
/ \
Guitar Drum
/ \ / \
AcGuitar ElGuitar AcDrum ElectricDrum
我想要的:
1) id、名称、描述等公共字段将位于@MappedSuperclass BaseProduct中
2) 乐器类型(吉他、鼓)将为这些类型的乐器提供公共字段
3) 最后,混凝土类AVGUITAT、ELGUITAT等将具有这种混凝土乐器的独特特性
最大的问题是,我希望两种类型的乐器有两个表:吉他和鼓(继承类型。每个类有一个表),具体类有一个表继承类型。单_表,这意味着将有一个表用于原声吉他和电吉他,一个表用于原声鼓和电鼓,并带有相应的判别列
我怎样才能做到这一点?谢谢
更新1
由于我需要作为一种通用类型与整个层次结构交互,并将产品映射到另一个实体,因此我执行了以下操作:
@MappedSuperclass
public abstract class BaseProduct { //supercclass
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
private String title;
// etc
}
中档产品:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Product extends BaseProduct {
}
因此,不幸的是,使用这种解决方案,任何混合都无法工作
# 1 楼答案
你可以这样做
根据结果,你会得到两张桌子,即吉他和鼓
# 2 楼答案
现在你们的数据库里有三张桌子。供你参考,退房here