我一直在我的桌面上使用Hibernate + HSQLDB爲我的應用程序開發數據庫適配器。出於傳統原因,這些ID由應用程序以字符串形式生成。所有工作都很好。休眠無法在大型數據庫上啓動
現在,我們有一個pre-prod數據庫,有超過一百萬條記錄。我不得不在Hibernate方面做一些修改(例如標識符太長),但沒有什麼重要的。
也就是說,直到我解決了這個問題。當我嘗試在預產品服務器上啓動我的應用程序時,Hibernate開始創建一個gazillion查詢,最終結束於OutOfMemoryError:Java堆空間。增加堆最大值沒有幫助。
我禁用了C3PO緩存設置並禁用了hibernate.hbm2ddl.auto。我不知道爲什麼它正在做這些查詢,我不知道如何禁用它們。
任何人都可以幫助我??????
它正在執行什麼樣的查詢? Hibernate不會自行查詢,因爲你的應用程序要求它發佈它們。 – skaffman 2009-10-19 07:58:06
你說得對。我在啓動時做了一個虛擬查詢,以確保我們觸及了數據庫。我刪除了那個,我可以啓動應用程序。但是這只是改變了問題,因爲執行任何DB請求時,gazillion查詢都會執行。 – malaverdiere 2009-10-19 08:33:03