Последняя строка не обязательна.Hibernate использует сторону владельца (в данном случае дочернюю), чтобы узнать, должна ли она сохранять связь.
Однако, это не заботит, инициализировали ли вы другую сторону, и не сделает это за вас.,Так, если этот метод возвращает родителя в графический интерфейс, например, графический интерфейс получит родителя без нового дочернего элемента в своем списке дочерних элементов.Точно так же, если этот фрагмент кода является лишь небольшой частью более длинной транзакции, остальная часть кода в транзакции не увидит нового дочернего элемента в списке дочерних элементов, поскольку вы не смогли поддерживать согласованность графа объектов.
Таким образом, если этот код не находится на фасаде и родительский элемент никогда не используется после выполнения этого фрагмента кода, следует инициализировать обе стороны.Если вы знаете, что делаете, и знаете, что родительский объект будет вне области видимости, не будет использоваться и будет собирать мусор после этого фрагмента кода, достаточно инициализации только собственной стороны.Но помните, что сам кэш сеанса поддерживает ссылку на родительский элемент до тех пор, пока сеанс не будет закрыт.