как реализовать наследование в спящем режиме? - PullRequest
2 голосов
/ 05 июня 2010

У меня есть сущности как:

  • BaseEntity -> Который содержит информацию для входа в систему, такую ​​как созданный пользователем, созданный временем, измененным временем, измененным временем
  • Employee -> которая содержит информацию о сотруднике, такую ​​как имя, адрес и т. Д. *
  • RegularEmployee -> который содержит зарплату, бонусы и поля и
  • ContactEmployee -> который содержит HourlyRate, contactPeriod и т. Д. *

Моя структура наследования

alt text

Как спроектировать структуру базы данных в этом случае, учитывая, что все таблицы имеют поля id и version (по крайней мере, во всех таблицах должны быть эти два поля).

Ответы [ 3 ]

1 голос
/ 05 июня 2010

Как спроектировать структуру базы данных в этом случае, учитывая, что все таблицы имеют поля id и версии (во всех таблицах должны быть как минимум эти два поля).

Если вы хотите, чтобы все таблицы имели поля версий id и , вам придется использовать таблицу для конкретной стратегии класса . См. 9.1.5. Таблица по конкретному классу или 2.2.4. Отображение наследования , если вы используете аннотации.

0 голосов
/ 05 июня 2010

ответ, данный 'pstanton', хорош и хорош, но есть еще один способ ... такой же, как реализовать наследование в Java. см. следующее сопоставление для вашего ответа

<union-subclass name="Employee" extends="BaseEntity" table="tb_emp" >
</union-subclass>

<class name="BaseEntity" abstract="true">
</class>

но я чувствую, с этим ты можешь достичь только 1 уровня наследования ..

0 голосов
/ 05 июня 2010

Глава 9. Отображение наследования

Я использовал модель «Таблица на класс». это хорошо работает для того, что я делаю.

столбец дискриминатора сообщает hibernate, какой подкласс создавать, и у подклассов могут быть поля, которых нет у других подклассов, но в таблице должны быть все столбцы (очевидно, для некоторых строк - ноль).

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