2012-05-26 65 views
0

您好我正在使用JPA hibernate作爲持久框架 我的類上的所有fetc類型屬性都是EAGER,所以當我試圖從我的數據中查找所有產品時基地它需要15秒,太慢:( 有沒有一種解決方案來加速它,我想擁有所有的依賴我的產品,我有我的mysql數據庫80行,理由是邏輯所有這一次? 可以我中度這種類型獲取 我使用EJB3.0的會話productSession是statless,我使用了一個名爲查詢 @NamedQuery的(名字=「Produit.findAll」,查詢=「從Produit一個選擇」)從我的數據庫獲取所有產品太慢,休眠「EGER」

回答

3

如果你設置每一個需要很多時間,因爲在加載產品時,必須提取其類別。並且是該類別的創建者。創作者的兄弟。和兄弟的女兒。和女兒的公司。公司的城市。還有城市的國家等等。我甚至不會談到許多協會。

只是不要將所有內容都設置爲急切加載。並且使用適當的HQL查詢來加載你感興趣的內容。如果一個關聯被設置爲渴望,它將總是被急切地加載。如果您將其設置爲惰性,則可以在需要時使用HQL或Criteria查詢快速獲取它。

閱讀HQL documentation about joins,特別是獲取連接。