2010-06-05 3 views
2

У меня есть объекты, как:Как реализовать наследование в спящем режиме?

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

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

alt text

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

+0

используя аннотации или XML? – Bozho

ответ

1

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

Если вы хотите все таблицы иметь идентификационные и версии полей, вы должны будете использовать таблицу в конкретном классе стратегии. См. 9.1.5. Table per concrete class или 2.2.4. Mapping inheritance, если вы используете аннотации.

0

Chapter 9. Inheritance mapping

я уже использовал "Таблица на класс" модель. он отлично работает для того, что я делаю.

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

0

ответ, заданный «pstanton», хорош и соответствует значению .. но есть еще один способ .. тот же, что и реализация наследования на Java. отсылает следующее отображение для вас ответ

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

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

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

Смежные вопросы