阅读量:0
MyBatis的association的延迟加载是通过配置MyBatis的Mapper文件来实现的。在配置association时,可以设置fetchType属性为lazy,表示延迟加载。这样在查询数据时,只会加载主实体对象,当需要访问关联实体对象时才会去数据库加载关联实体对象的数据。
具体实现步骤如下:
- 在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);
- 当需要访问关联实体对象时,可以通过主实体对象的getter方法来访问。
Department department = user.getDepartment();
这样就实现了MyBatis的association的延迟加载。当需要访问关联实体对象时,MyBatis会去数据库加载关联实体对象的数据,从而避免一次性加载所有关联实体对象的数据,提高查询效率。