Почему внешний ключ должен быть в разных таблицах для однонаправленного и двунаправленного отображения один на один? - PullRequest
0 голосов
/ 03 октября 2018

При однонаправленном сопоставлении один к одному внешний ключ должен присутствовать в собственной таблице.Так, например, если есть таблица Employee и таблица EmployeeDetails, таблица Employee должна иметь внешний ключ employee_details_id.Однако если мы хотим изменить отображение на двунаправленное, внешний ключ должен присутствовать в таблице EmployeeDetails, т. Е. В нем должен быть столбец с именем EmployeeId.Я вывел это на основе примера, приведенного здесь в документах по гибернации: http://docs.jboss.org/hibernate/orm/5.3/userguide/html_single/Hibernate_User_Guide.html#associations-one-to-one

(поэтому в примере один к одному в документах по ссылке выше, когда сопоставление является однонаправленным, телефонная таблица имеетстолбец details_id, но когда отображение двунаправленное, таблица phone_details имеет идентификатор phone_id).

Может кто-нибудь объяснить, почему это так?Насколько я понимаю, сопоставления предназначены только для простоты программирования, поэтому двунаправленные сопоставления позволяют осуществлять навигацию только из обоих классов, и базовая база данных не нуждается в модификации на основе сопоставления.Но пример кода в приведенной выше ссылке противоречит этому.

Может кто-нибудь уточнить, пожалуйста?

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