我有一个类似于以下
的继承层次结构@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
abstract BaseEntity //all persistable entity extends this
我想为以下内容采用联合继承策略。使用Employee和Doctor的表格。我该怎么做呢将@MappedSuperclass on Person工作???
abstract Person extends BaseEntity
Employee extends Person
Doctor extends Person
答案 0 :(得分:2)
你正在倒退。使用BaseEntity进行实体继承不是您想要的:您永远不会有从一个实体到BaseEntity的关联。因此,BaseEntity应该是一个没有任何注释的常规类,或者如果它有一些映射注释,则应该是MappedSuperclass。
相反,你很可能会有一些与其他人有联系的实体,如果他们是医生或雇员,他们就不会有所照顾。因此,人,医生或员工之间的实体继承是有道理的。如果不是这样,并且每个实体都引用了医生或员工,那么Person也应该是MappedSuperclass。