0
我有一個數據庫表與ORMlite映射,它包含一些數據(18列),它也包含ForeignCollectionField(eager = true)
。如何加快海外收藏的急切加載?
問題是加載此表中的所有數據時... ORMlite正在使用連接爲每個項目創建查詢。這導致了67124個查詢並永久加載該表中的所有對象。
然而,這可以在幾秒鐘內的右連接查詢中完成?爲什麼要生成數千個查詢呢?
我該如何加快速度?我必須編寫原始查詢,然後RawRowMapper,這使得使用ORM毫無意義。
如何處理加載ormlite中的渴望集合?因爲queryForAll
沒有辦法..
你爲什麼要加載所有的數據,以及如何? ORM不適用於報告或ETL,這是「加載所有數據」的唯一有效理由。使用存儲過程或視圖。你所描述的是'N + 1'問題,應該使用急切加載來解決。你如何進行查詢以及你如何定義映射? –
PS ORM *真的,真的*不適用於報告或ETL。這只是一個學術討論。當*不打算將任何域邏輯應用到它們時,您無法將行和值轉換爲對象。 –
在這種情況下,我需要加載所有數據,這些數據稍後將全部顯示在3D圖形中並用於模擬...背後有大的邏輯域邏輯。這個表有更多的列和整個數據庫有更多的表..但這次我需要加載所有和它的慢..反正即使不會是大領域的邏輯,你在開始加載所有數據,數據庫仍然是一個好方法保存這些數據,因爲它的列可以在運行時更新,而不是重寫整個xml文件。 –