2014-11-24 16 views
0

的延遲初始化例外,我有實體一樣,顯示數據,以避免與建立@BatchSize

@Entity 
@Table(...) 
public class ENTITY_1 { 

    //.... 
    private ENTITY_2 entity_2 ; 
    private ENTITY_3 entity_3 ; 
    private Set<ENTITY_3> entities_3 = new HashSet<ENTITY_3>(0); ; 
    private ENTITY_4 entities_4 = new HashSet<ENTITY_4>(0); ; 
    //... 

,我想,以顯示我的jsp查詢的結果,所以我做一個請求獲取所有相關實體以避免延遲初始化異常left join fetch

我的要求是基於我的ENTITY_1(select .. from ENTITY_1

但我用分頁每頁僅有10結果所以取了我的請求減慢,所以我用@BatchSize(size=10)

我的問題是如何在我的jsp中顯示相關實體的所有數據,因爲我得到了延遲初始化異常。

我的JSP如:

${entity_1_model.discription} 
    //... 
       <c:forEach var="entity_4" items="${entity_1_model.entities_4}"> 
        <span class="">${entity_4.name}</span> 
       </c:forEach> 
+0

您的存儲庫方法是怎樣的? – 2014-11-24 13:32:08

回答

1

的最快,最簡單的解決辦法是在執行主查詢後獲取數據。嘗試像這樣

page.content = query.offset(pageNumber*pageSize).limit(pageSize).list(ao); 

for (Content cont : page.content) { 
    Hibernate.initialize(cont.getEntities_4()); 
} 
+0

感謝男人,這是非常有益的;) – Youssef 2014-11-24 15:53:33

+0

@Youssef沒問題,很高興它幫助 – 2014-11-24 15:55:48