Всякий раз, когда сопоставление сопоставляется с обоих концов, один из этих концов обозначается как активный, а другой - как пассивный.(Пассивный конец - это тот, который отображается с помощью mappedBy=
или inverse="true"
)
Hibernate не обновляет и не может обновить пассивный конец коллекции при изменении активного конца, так как он может обнаружить такойизменяется только во время промывки.Следовательно, считается хорошей практикой вызывать код для изменения обоих концов ассоциации, чтобы гарантировать, что объектная модель всегда находится в согласованном состоянии.
Самому Hibernate не важно, согласованы ли два конца ассоциации, поскольку он смотрит только на активный конец при сбросе в базу данных.
При отображении связи один ко многимконец один-ко-многим должен быть обозначен как пассивный.В разделе руководства по гибернации, на который вы ссылаетесь, делается попытка объяснить, почему.