2013-12-13 76 views
0

我有一些懷疑,例如@OneToMany可能是有效的。讓我們假設對象A擁有它,這裏面集合對象乙收藏有10萬級的對象JPA ORM關係有效嗎?

class A { 
    List<B> b; //.size() == 100.000 
    ... 
} 

即使我標記B,以獲取被LAZY將下面的僞代碼做什麼呢?

select from database object into A a; 
a.b.add(new B()); 

如果我是正確的,因爲我做了一個訪問字段它必須被加載,是嗎?所以只是爲了做一個插入我已經從數據庫下載100k行?

任何人都可以澄清我的疑惑嗎?

回答

1

是的,你是對的:所有100k行將被加載。

怎麼辦?

我想,從B到A也有一個反向關係。在這種情況下,爲了避免性能問題,你堅持B實例,當A的列表中沒有加載B時。或者,您可以創建一個本機查詢。

+0

感謝您的澄清。 – abc