2011-10-12 98 views
1

我有一個奇怪的情況下,我寫了一個簡單的代碼來查詢數據庫中JPA2.0JPA query.getResultList()得到stucked,沒有錯誤

一切似乎不錯,但是當代碼命中query.getResultList ();

它只是卡住並沒有響應,則GlassFish服務器獲取CPU

的20%左右,然後什麼也沒有發生,也不會產生任何錯誤或日誌。

有什麼不對?

我使用GlassFish中的EclipseLink,NetBeans的

這是我的代碼:

public List<?> getData(EntityManager em,Class entityClass){ 
Query query=em.createQuery("select entity from tblPromotions entity"); 
return query.getResultList(); 
} 

在此先感謝

回答

0

嘗試調試它,它在哪裏卡住了? (殺死或ctrl c打印堆棧跟蹤,或使用調試器)

也打開最好的日誌記錄。

它可能是一個數據庫鎖,因爲它是一個讀,你必須使用某種序列化的事務隔離,這可能是一個壞主意。

桌子上有多少東西,它可能會花很長時間。

0

在我的情況調試到Hibernate後,我發現查詢只是返回了太多的行以供處理。 所以它是通過設置最大價值的一些解決結果:

query.setMaxResults(100); 

BTW:總是這樣的情況下嘗試調試到框架,它可以給你答案:>

相關問題