mybatis懶載入機制生效的陷阱

2021-06-28 20:16:18 字數 458 閱讀 6217

**:

一些剛接觸mybatis的人如果之前用過hibernate,總想試試它的延遲載入功能,其實在實際開發中我從來沒有使用過這個功能,因為沒有必要。

但是mybatis的延遲載入的配置確存在一定的陷阱,從mybatis官方的文件及例子中也沒有找到完整的配置說明。

廢話少說了,正題,要使延遲載入生效必須配置下面兩個屬性:

如果你只配了lazyloadingenabled屬性,那就不行了。

官方對這兩個屬性的解釋是:

lazyloadingenabled 全域性啟用或禁用延遲載入。當禁用時,所有關聯物件都會即時載入。預設:true 

aggressivelazyloading 當啟用時,有延遲載入屬性的物件在被呼叫時將會完全載入任意屬性。否則,每種屬性將會按需要載入。預設:true

demo的**我就不貼了,放附件裡了。

Mybatis懶載入和快取機制

mybatis的配置快取機制和懶載入 二級快取的侷限性 在乙個物件更新後,無法更新其他同乙個namespace中的物件,並且會清空。二級快取以namespace劃分。一級快取 在同乙個sqlsession中兩次執行相同的sql語句,第一次執行完畢會將資料庫中查詢的資料寫到快取 記憶體 第二次會從快取...

mysql懶載入 mybatis懶載入

1.概念 懶載入就是按需載入,我們需要什麼的時候再去進行什麼操作。而且先從單錶查詢,需要時再從關聯表去關聯查詢,能很大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。在mybatis中,resultmap可以實現高階對映 使用association collection實現一對一及一對多對映...

Mybatis延遲載入(懶載入)

將採用高階對映實現多表聯查時向資料庫發出的sql語句拆分成若干條單錶查詢的sql語句,當需要返回資料時才會向資料庫發出只針對當前資料的sql語句。需求 根據訂單編號,查詢訂單,並返回訂單詳情描述資訊實現延遲載入的前提條件 在settings中配置與延遲載入有關的屬性.column 查詢user的引數...