hibernate/jpa 取消延遲加載策

 衆所周知,hibernate/jpa 爲提高性能,引入延遲加載策略,如在一對多,多對多應用中,通常多的一端爲延遲加載。這一定程度上可以優化系統性能,然而,在部份應用中,這種策略並吃力並不討好,如在很多互聯網應用了,由於上延遲加載,因此,數據庫連接/事務 關閉的時間也將延長(通常情況,方法調用完畢,數據庫連接就關閉[釋放]),數據庫連接/事務,通常要等到頁面渲染完畢,通過Filter,將數據庫連接/事務關閉[釋放]。可以想像,在高併發環境下,若終端用戶,網絡環境不好,頁面下載時間極長,那麼數據庫數連接不就不能儘快釋放嗎?那麼數據庫將面臨連接耗盡的危險!

     如何解決?根據實際需要取消延遲加載?但是取消延遲加載,不就一下子加載很多結果集上來?在我以爲,可以根據實際需要,設計相應實體,可解決這問題。

    在一對多/多對一 關係中,僅用多對一的單向關聯,多對多關聯,採用單向關聯或者用中間類原則,改爲雙向的多對一關聯,加載策略都爲立即加載。那麼延遲加載引發的問題可以一定程度上解決。

 

   當然延遲加載,也有他一定的適用環境,在企業內部系統中,一般來說,網絡環境較好情況下,Hibernate/jpa 延遲加載的策略也有它的適用場境,任何工具都有它的侷限性,適用之,工具將爲你而服務!

發佈了25 篇原創文章 · 獲贊 0 · 訪問量 1575
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章