mybatis文件映射之利用延迟加载解决分布查询每次查询Employee时
之前关联查询时,每次查Employee时都会带上Department,现在我们想当只有需要查Department时才去查找它,可以使用延迟加载。 在mybatis配置文件中配置: <settings> setting name="lazyLoadingEnabled" value="true"/> ="aggressiveLazyLoading"="false"/> </> 此时再利用上节的分布查询的代码进行测试,只不过在测试时:如果我们只是要打印lastName: Employee employee = mapper.getEmpByIdStep(3);
System.out.println(employee.getLastName());
输出: DEBUG 01-20 15:04:34,894 ==> Preparing: select * from tbl_employee where id=? (BaseJdbcLogger.java:145) 假设我们要打印dept: Employee employee = mapper.getEmpByIdStep(3);
System.out.println(employee.getDept());
输出: DEBUG 01-20 15:05:00,830 ==> Preparing: select * from tbl_employee where id=? (BaseJdbcLogger.java:145) 发现没,当我们使用了延迟加载后,当我们不使用Deparment时,只会发送一条sql语句。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |