JPA / Hibernate: краткое определение и лучшие практики для коллекции "владелец" - PullRequest
1 голос
/ 02 марта 2012

Я ищу простое определение для "владельца". Документы в спящем режиме постоянно говорят о «владельце», но я не могу найти какое-либо определение, что такое владелец. То есть я бы хотел ответить на следующие вопросы:

  • Что означает, концептуально / логически, быть владельцем?
  • Соответствует ли это какой-либо концепции в реальной жизни?
  • В отношениях «многие к одному» или «один ко многим», почему вы выбрали бы один конец или другой в качестве владельца?

1 Ответ

3 голосов
/ 02 марта 2012

Владелец - это сторона, у которой нет атрибута mappedBy.

Это сторона ассоциации, которую Hibernate / JPA отслеживает, чтобы увидеть, существует ли связь между двумя сущностями. Если вы установите / измените сторону владельца, это изменение будет отражено в базе данных. Если вы установите / измените другую сторону, JPA / Hibernate не волнует.

Это не соответствует ни одной концепции в реальной жизни.

В двунаправленной ассоциации OneToMany / ManyToOne единственной стороной, которая может быть владельцем в спецификации JPA, является сторона Many. Кроме того, это наиболее естественный выбор, учитывая, что сторона таблицы, содержащая внешний ключ, материализует ассоциацию. Hibernate позволяет определить другую сторону как владельца, но сопоставление является сложным и не рекомендуется.

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