思考问题?
一对多:我们查询用户时,要不要把关联的订单查询出来
多对一:我们查询订单时,要不要把关联的用户查询出来
什么是懒加载?
就是在需要它的时候才加载,不需要的话就不加载
MyBatis延迟加载也称懒加载,是指进行关联查询时,按照设置延迟规则推迟对关联对象的select查询,可减轻数据库压力。
使用场景
一对多,多对多 通常采用延迟加载
一对一,多对一 通常采用立即加载
懒加载直接使用
<settings>
<!-- lazyLoadingEnabled:延迟加载启动,默认是false 相当于是否开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 将积极加载改为消息加载即按需加载 -->
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
<!--一对多,延迟加载-->
<resultMap id="userByIDresultMap" type="User" autoMapping="true">
<!--映射user-->
<id property="id" column="id"/>
<!--映射orders-->
<collection property="orders"
column="id"
select="cn.yanqi.mapper.UserMapper.queryOrderByID"
ofType="Order"
javaType="List"
fetchType="lazy"
autoMapping="true"/>
</resultMap>