Нужно ли вручную создавать таблицы отношений в Hibernate? - PullRequest
0 голосов
/ 04 марта 2011

Если у меня две таблицы,

Person

PhoneNumbers

Поскольку она имеет отношение «один ко многим», нужно ли мне вручную создавать третью таблицу, например person_phone, или Hibernate автоматически это сделает?

Ответы [ 3 ]

4 голосов
/ 04 марта 2011

Если это отношение один ко многим, вам не нужна третья таблица; PhoneNumbers будет включать внешний ключ к таблице Person.

2 голосов
/ 04 марта 2011

Даже если вам не нужна третья таблица, у вас может быть третья таблица (например, в целях оптимизации).В этом случае вы можете отобразить отношения как обычно, а также добавить аннотацию @JoinTable:

http://download.oracle.com/javaee/6/api/javax/persistence/JoinTable.html

В качестве альтернативы вы можете найти дополнительную информацию об этом в документации по Hibernate (см. Раздел5.1.7.1 Использование внешнего ключа или таблицы ассоциации):

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#d0e7541

0 голосов
/ 04 марта 2011

Нужно ли вручную создавать третью таблицу, например person_phone?

Нет, вам не нужно.

Рассмотрим отношения.Это один ко многим.то есть у человека может быть много телефонных номеров.Как бы вы отобразили это без Hibernate?Одна таблица для Person и другая таблица для PhoneNumbers с внешним ключом для PersonsId.Это то, что сделает Hibernate, если вы не укажете иное, как упомянуто Партеноном.

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