Мне интересно, как лучше всего загружать вложенные значения для лениво загруженных объектов. Я привожу пример, чтобы помочь объяснить это лучше.
public class A{
private B b; //Lazy loaded
private C c; //Lazy loaded
private D d; //Lazy loaded
}
public class B{
private E e; //Lazy loaded
private F f; //Lazy loaded
}
public class C{
}
public class D{
}
В качестве примера я хочу сделать:
System.out.println(a.getB().getE());
Если бы я выполнил приведенный выше оператор, я бы получил исключение для отложенной загрузки.
Я всегда могу сделать следующее:
for (A a : somePossiblyLargeList) {
org.hibernate.Hibernate.initialize(a.getB().getE());
}
но, очевидно, производительность будет отстойной.
Есть ли способ написать собственный HQL-запрос, который возвращает объекты A, предварительно заполненные этими конкретными вложенными полями?
Спасибо!