两步走:
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);
}
本文介绍如何在MyBatis中实现延迟加载功能,通过配置fetchType属性或使用全局设置来减少内存消耗并提高应用程序性能。
1470

被折叠的 条评论
为什么被折叠?



