两步走:
1.开启 延迟加载:
两种方法:
1.第一种是在对应的<collection>或<association>标签上指定fetchType属性值为“lazy”。
<collection property=
"nodes"
column
=
"id"
ofType=
"com.elim.learn.mybatis.model.SysWfNode"
select
=
"selectNodes"
fetchType=
"lazy"
/>
2.在配置文件中设置:
<settings> <!-- 打开延迟加载 的开关 --> <setting name="lazyLoadingEnabled" value="true"/> <!-- 将积极加载改为消极加载即按需要加载 积极加载指访问一个加载一个对象将所有对象都取出来--> <setting name="aggressiveLazyLoading" value="false"/> </settings>
2.配置map:
1.在配置association和collection标签中加入select和column
<association property="user" javaType="vo.User" select="findUserById" column="user_id">
</association>
select决定了当访问该对象时进行怎样的查询
column决定了当进行关联的列
测试代码:
List<Orders> c=ordermapaper.yanchi();
//遍历订单
for(Orders orders:c){
User user=orders.getUser(); //当进行遍历时才进行加载
System.out.println(user);
}