码迷,mamicode.com
首页 > 其他好文 > 详细

关于 Mybatis 设置懒加载无效的问题

时间:2017-11-05 20:03:37      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:map   指定   session   延迟   style   name   文件中   blog   log   

 看了 mybatis 的教程,讲到关于mybatis 的懒加载的设置:

只需要在 mybatis 的配置文件中设置两个属性就可以了:

    <settings>
        <!-- 打开延迟加载的开关 -->
        <setting name="lazyLoadingEnabled" value="true" />
        <!-- 将积极加载改为消息加载即按需加载 -->
        <setting name="aggressiveLazyLoading" value="false" />
        
    </settings>

但是经过测试之后发现是无效的,经过一番折腾,发现是因为我在测试的时候,调用了查询出来的对象的 toString 方法,所以触发了一次懒加载:


            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            Employee employee = mapper.selectEmployee(1);
            System.out.println(employee);

后来在配置文件中加入了这个设置:

<setting name="lazyLoadTriggerMethods" value=""/>

再试一遍,问题解决了

 

附上文档上的说明:

lazyLoadTriggerMethods:指定哪个对象的方法触发一次延迟加载。默认值:equals,clone,hashCode,toString

所以,当我打印对象时,由于触发了 toString 方法,所以触发了一次懒加载

 

Ps:在 Employee 中关联了 Department 对象,但是为了测试懒加载,我在 Employee 的toString 方法中并没有调用 Department 这个属性

关于 Mybatis 设置懒加载无效的问题

标签:map   指定   session   延迟   style   name   文件中   blog   log   

原文地址:http://www.cnblogs.com/zyx1301691180/p/7788252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!