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会去数据库加载关联实体对象的数据,从而避免一次性加载所有关联实体对象的数据,提高查询效率。