2011-01-04 5 views
1

У меня есть 10 таблиц со следующей схемойКак сделать наследование в спящем режиме?

  • ID
  • Год
  • Код
  • Раздел
  • Период
  • Дата
  • Статус

Каждая таблица имеет имя data_1, data_2 и т. Д. Теперь я хочу написать сопоставление Hibernate для этих таблиц. Поскольку все эти таблицы имеют одну и ту же схему с только именами, я написал файл POJO с данными как суперкласс и все остальные 10 классов, наследующих его.

Что мне делать с файлами hbm? Должен ли я писать один файл hbm для каждой таблицы? Я пробовал союз-подкласс, но почему-то я не мог понять это правильно. В Hibernate я получаю много необъяснимых ошибок.

Как написать сопоставление Hibernate в этом типе сценария? Я стартер в Hibernate и, пожалуйста, обратите внимание, что выбор дизайна базы данных не в моих руках. У меня есть 30 подобных подобных типов.

ответ

1

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

Заканчивать документация зимуют на http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html

Насколько я понимаю, ваша стратегия «Таблица на конкретный класс»

0

Прежде всего, вам нужно выбрать, какой тип стратегии вы хотите для наследования , Есть несколько вариантов.

Посмотрите на это link here, где он описывает немного о наследовании в JPA. Hibernate поддерживает JPA, поэтому отображения должны быть такими же, то есть:

Заметим, однако, что это тип отображения для EclipseLink

<entity name="Project" class="Project" access="FIELD"> 
    <table name="PROJECT"/> 
    <inheritance strategy="JOINED"/> 
    <discriminator-value>P</discriminator-value> 
    <discriminator-column name="TYPE"/> 
    <attributes> 
    <id name="id"><column name="ID"/> </id> 
    </attributes> 
</entity> 
<entity name="LargeProject" class="LargeProject" access="FIELD"> 
    <table name="L_PROJECT"/> 
    <discriminator-value>L</discriminator-value> 
</entity> 
+0

сколько файлов HBM мне нужно написать ..? Я использую myeclipse ..., пожалуйста, дайте мне образец для моего требования ... он просто продолжает бросать ошибку .... Я бы хотел использовать таблицу для конкретной иерархии классов, спасибо u ..... – sasidhar

+0

Я догадываюсь, что вы есть файл hbm.xml для каждой из ваших сущностей? В таком случае вам нужно будет добавить его во все ваши файлы hbm.xml. –

+0

Посмотрите на ссылку, на которую указывает @bertolami. В разделе 9.1.1 приведен пример сопоставления –

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