#java #hibernate
#java #гибернация
Вопрос:
У меня есть объект (родительский объект), у которого есть дочерний объект, и в этом дочернем объекте есть другой дочерний объект.
Я использую гибернацию, и когда я извлекаю родительский объект, дочерний объект загружается лениво.
Но дочерний объект дочерних объектов загружается с нетерпением.
Но когда я говорю, patient.getChildObject().getChildObject()
это значение равно нулю.
Может ли кто-нибудь объяснить мне, как я могу извлекать дочерние объекты, дочерний объект при извлечении родительского объекта?
Спасибо
Комментарии:
1. Можете ли вы опубликовать свой код и сопоставление?
Ответ №1:
Беспорядочный и не рекомендуемый подход заключается в сохранении идентификатора дочернего дочернего объекта в дочернем объекте. Затем вы можете перейти к следующему:
ChildChild cc = (ChildChild)
session.load(ChildChild.class, Parent.Child.getChildId());
Не очень красиво, но должно сработать.
Ответ №2:
добавьте @ManyToOne(выборка = FetchType.НЕТЕРПЕЛИВЫЙ) или @OneToOne(выборка = FetchType.НЕТЕРПЕЛИВЫЙ) или @OneToMany(выборка = FetchType.НЕТЕРПЕЛИВЫЙ) или @ManyToMany(выборка = FetchType.НЕТЕРПЕЛИВЫЙ) как ваша потребность для каждой ссылки на дочерний объект.