zoukankan      html  css  js  c++  java
  • 测试mybatis延迟加载错误与解决方法

    什么是延迟加载?

    延迟加载又叫懒加载,也叫按需加载,也就是说先加载主信息,需要的时候,再去加载从信息。

    需求:

        查询订单信息,需要时再去查询用户信息

    实现方式:

        编写两个statement,其中一个statement是查询订单信息,一个是查询用户信息,但是查询订单信息的statement要使用resultMap标签进行结果映射。

    Mapper接口:

      /**
        * 延迟加载  查询订单 需要时在查询用户信息
        * */
       public List<OrderExt> lazyLoading();

    Mapper映射文件:OrderMapper.xml

       <resultMap type="orderExt" id="lazyLoading">
          <!-- 订单信息 -->
          <id column="id" property="id" />
          <result column="number" property="number" />
          <result column="user_id" property="user_id" />
          <!-- 用户信息 -->
          <association property="user"
           select="com.heima.mapper.UserMapper.findUserById" column="user_id"/>
         </resultMap>
         <!-- 延迟加载 -->
       <select id="lazyLoading" resultMap="lazyLoading">
          SELECT * from orders
       </select>

      <select id="findUserById" parameterType="int" resultType="com.heima.po.User">
         SELECT * FROM USER WHERE id = #{id}
       </select>

    Mybatis全局映射文件:

        <!-- 延迟加载 懒加载 -->  

        <settings>
            <setting name="lazyLoadingEnabled" value="true" />
            <setting name="aggressiveLazyLoading" value="false" />
         </settings>

    Test类:

        @Test
       public void lazyLoading(){
          SqlSession sqlSession = sqlSessionFactory.openSession();
          OrderMapper mapper = sqlSession.getMapper(OrderMapper.class);
          List<OrderExt> list = mapper.lazyLoading();
          for(OrderExt order : list){
           System.out.println(order);
          }
        }

    在测试过程中出了一个错误:

      

    解决方法:

      把OrderMapper映射文件中的 association标签中的column值写错了,下面是正确写法 ,column这个属性不能省略,否则将报错。

          <association property="user"
             select="com.heima.mapper.UserMapper.findUserById" column="user_id"/>

  • 相关阅读:
    springboot整合log4j2
    document解析html
    关于字符串读写乱码的解决方法浅谈
    BOM知识整理
    es6的Map()构造函数
    es6的Set()构造函数
    关于node的path模块
    java总结(方法与对象)
    webpack3.0+总结
    java总结(二)(运算符)
  • 原文地址:https://www.cnblogs.com/muli/p/5154215.html
Copyright © 2011-2022 走看看