如何解決查詢N 1問題

2021-10-02 17:20:24 字數 285 閱讀 9168

1.使用資料庫left join來實現,在一次資料庫查詢中查出多條資料,但是要對結果進行分組組裝。但是對於分頁支援不好,需要自定義分頁外掛程式,現有解決思路如下:

編寫sql時,將主表的條件寫入到where條件中,將所有left join的條件寫到on中,使用and來拼接多個條件,然後編寫分頁外掛程式識別連線查詢,將主表外包裹一層子查詢,子查詢中使用limit關鍵字來做分頁。

2.先將主表中的資料查詢出來,然後將集合id插入到陣列中,根據集合id陣列使用sql的in關鍵字再做一次查詢,然後在記憶體中進行拼裝。有幾個集合就多幾次查詢。

JPA 解決n 1次查詢問題

分兩步操作 1 主表實體類中,新增註解 namedentitygraph 如上,設定name值,並指定attributenodes 看名字就知道可以指定多個 每個node的值如下圖紅框 2 在主表的dao方法中 重寫用到的查詢方法,service層中呼叫什麼方法就重寫什麼方法,我這邊用到的是 pag...

Hibernate解決n 1問題

觀點 對於n 1問題的理解。一般而言說n 1意思是,無論在一對多還是多對一當查詢出n條資料之後,每條資料會關聯的查詢1次他的關聯物件,這就叫做n 1。但是我的理解是,本來所有資訊可以一次性查詢出來,也就是簡單的連表查詢,但是hibernate會首先查詢1次得到當前物件,然後當前物件裡面的n個關聯物件...

解決資料庫N 1查詢問題

需求 資料表如下 department表 id name user表 id name department id 需求是得到以下結構的資料 方法一 迴圈查詢 查詢使用者列表 迴圈使用者列表查詢對應的部門資訊 users db query select from user foreach usersa...