[Hibernate] навигация по объектам
Заказы сами заполняются, когда ты выбираешь покупателя из БД.
Точнее, если у тебя в мэппингах стоит lazy=false, то заказы выбираются когда ты выбираешь пользователя, если lazy=true, то заказы выбираются когда вызываешь getЗаказ.
По-моему,так ты пробовал? в примерах там сами заполняют
Попробуй сам.
Неужели при использовании Hibernate нужно самому следить за заполнением коллекции "заказы"?Что ты понимаешь под словом "заполнение"? Для обновления двунаправленных связей действительно требуется установка ссылок на обоих концах связи. Когда эти изменения будут распространятся в базу - зависит от настроек каскадности и флага inverse.
Для обновления двунаправленных связей действительно требуется установка ссылок на обоих концах связихрень какая-то, т.е. если закрыть и открыть сессию связи подхватятся, причем именно сессию, а не транзакцию
что значит подхватятся
если закрыть сессию, твои объекты уже перестанут быть "хранимыми"
закрыть сессию, открыть новую и снова запросить объект
Какие конкретно запросы сделает Hibernate, зависит от fetch-mode и от того, объявлены ли дочерние классы как lazy. Но для пользователя все коллекции инициализируются прозрачным образом. fetch-mode должен интересовать только с точки зрения производительности, не более.
А типа one-to-many теперь bi-directional? Вообще, при вопросах по hibernate принято приводить mappings и код всех pojo из примера. Так что в студию!
bi-directional - это не кардинальность связи, а поддержка ссылок с обоих ее концов.
Оставить комментарий
stm2388838
Пусть нам нужна обычная связь один-ко-многим, например, Покупатель и его Заказы.class Покупатель
{
private Collection заказы = new HashSet;
getЗаказы {...}
setЗаказы(...) {...}
...
}
Неужели при использовании Hibernate нужно самому следить за заполнением коллекции "заказы"?
Судя по разделу "2.3.6. Working bi-directional links " документации, вероятно это так (тут связь многие ко многим, но это не суть важно)
P.S. про protected они тут какую-то чушь написали