2017-02-20 7 views
1

Я новичок в Hibernate, и я пытаюсь изучить стратегии отображения. Теперь я могу добиться однонаправленных и двунаправленных отображений. Я обнаружил, что @JoinColumn строго необходим в случае картирования uni-directional, но не в случае bi-directional картирования.Спящий режим: поведение @JoinColumn в однонаправленном и двунаправленном сопоставлении

Почему @JoinColumn или @JoinTable требуется в случае uni-directional отображения, но необязательно в случае bi-directional отображения?

ответ

0

Я бы не сказал, что это необязательно в случае двунаправленного отображения. Это просто указано на стороне владельца, а это означает, что указание его на принадлежащей стороне является необязательным и избыточным. Также не рекомендуется, так как вам нужно будет внести изменения в два класса, когда имена столбцов объединения изменились бы.

Я сделал несколько тестов, и Hiberante разрешил бы это. Но снова зачем это делать.

Как однонаправленного отображение только имеет боковой владеющее настроен и не ожидать присоединения к этим организациям с другой стороны отношения, то косвенно:

@JoinColumn (подходит для однонаправленного @ManyToOne)

или

@JoinTable (подходит для однонаправленного @OneToMany)

должен быть использован.

Пробуй эту статью: examples

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