延迟加载

两步走:

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的多对多查询
下一篇mybatis与spring的整合之原生DAO开发s
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭