jpa присоединился к стратегии наследования с сопоставленным суперклассом - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть иерархия наследования, похожая на следующую

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
abstract BaseEntity //all persistable entity extends this

Я хочу использовать стратегию объединенного наследования для следующего. С таблицами для Сотрудника и Доктора. Как мне это сделать? Будет ли @MappedSuperclass on Person работать ???

abstract Person extends BaseEntity
Employee extends Person
Doctor extends Person

1 Ответ

2 голосов
/ 29 декабря 2011

Ты делаешь это задом наперед.Вам не нужно иметь наследование сущностей с BaseEntity: у вас никогда не будет связи между одной сущностью и BaseEntity.Таким образом, BaseEntity должен быть либо обычным классом, без каких-либо аннотаций, либо MappedSuperclass, если у него есть некоторые аннотации отображения.

Наоборот, есть большая вероятность, что у вас будет какая-то сущность, которая связана с другими людьми, не заботясь о том, являются ли они врачами или сотрудниками.Таким образом, наследование сущностей между людьми, врачами или сотрудниками имеет смысл.Если это не так, и каждый объект ссылается на врачей или сотрудников, то Person также должен быть MappedSuperclass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...