вопрос о гибернации java

#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.НЕТЕРПЕЛИВЫЙ) как ваша потребность для каждой ссылки на дочерний объект.