MyBatis的association的延遲加載是通過配置MyBatis的Mapper文件來實現的。在配置association時,可以設置fetchType屬性為lazy,表示延遲加載。這樣在查詢數據時,只會加載主實體對象,當需要訪問關聯實體對象時才會去數據庫加載關聯實體對象的數據。
具體實現步驟如下:
<resultMap id="userMap" type="User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<association property="department" column="dept_id" javaType="Department" fetchType="lazy"/>
</resultMap>
User user = sqlSession.selectOne("getUser", userId);
Department department = user.getDepartment();
這樣就實現了MyBatis的association的延遲加載。當需要訪問關聯實體對象時,MyBatis會去數據庫加載關聯實體對象的數據,從而避免一次性加載所有關聯實體對象的數據,提高查詢效率。