Какова “сторона владения” в отображении ORM?

Что точно имеет в виду сторона владения? Что такое объяснение с некоторыми отображающимися примерами (один многим, один одному, многие к одному)?

Следующий текст является выборкой из описания @OneToOne в документации Java EE 6. Вы видите, что понятие владеет стороной в нем.

Определяет однозначную ассоциацию к другому объекту, который имеет непосредственную кратность. Не обычно необходимо указать связанный целевой объект явно, так как это может обычно выводиться из типа ссылаемого объекта. Если отношения двунаправлены, сторона невладения должна использовать mappedBy элемент аннотации OneToOne для определения поля отношений или свойства стороны владения.

116
задан Willi Mentzel 13 November 2017 в 18:18
поделиться

1 ответ

Вы можете представить себе, что сторона-владелец - это объект, имеющий ссылку на другую. В вашем отрывке у вас отношения один на один. Поскольку это симметричное отношение, у вас получится, что если объект A связан с объектом B, то верно и обратное.

Это означает, что сохранение в объекте A ссылки на объект B и сохранение в объекте B ссылки на объект A будет излишним: поэтому вы выбираете, какой объект «владеет» другим, имеющим ссылку на него.

Когда у вас есть отношение «один ко многим», объекты, относящиеся к части «многие», будут стороной-владельцем, в противном случае вам пришлось бы хранить множество ссылок от одного объекта к множеству. Чтобы избежать этого, каждый объект во втором классе будет иметь указатель на единственный объект, на который они ссылаются (так что они являются стороной-владельцем).

Для отношения «многие ко многим», поскольку вам в любом случае потребуется отдельная таблица сопоставления, стороны-владельца не будет.

В заключение, сторона-владелец - это объект, имеющий ссылку на другую.

135
ответ дан 24 November 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: