3
我想知道什麼最好的方法是加載惰性加載對象的嵌套值。我提供了一個例子來幫助更好地解釋這一點。HQL /嵌套預先加載
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查詢,該查詢返回預填充了那些特定嵌套字段的對象?
謝謝!
優秀,我會檢查出來。謝謝! – user973479
我認爲我的實際情況比我的例子有點棘手......這是A <-> B與稱爲A_Lnk_B的鏈接表之間的多對多映射。所以,A類包含一組Set。從那個列表中,我必須迭代每個B的ID。然後,我將B中的那些ID找到E.我很難概念化這將如何存儲回到一個Java A對象中... –
user973479
從A中選擇一個左連接獲取a.aLinkBs alb左連接獲取alb.bb左連接獲取be在哪裏... –