如果查询订单并且关联查询用户信息如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息把对用户信息的按需去查询就是延迟加载。
延迟加载:先从单表查询需要时再从关联表去关联查询,大大提高数据库性能因为查询单表要比关联查询多张表速度要快。
1、需求:查询訂单并且关联查询用户信息
<!-- 查询订单关联查询用户用户信息需要延迟加载 -->
2) 关联查询用户信息
通过上边查询到的订单信息中user_id去关联查询鼡户信息
column:订单信息中关联用户信息的列,是user_id4、打开延迟加载开关
<!-- 将积极加载改为消息加载即按需加载 -->lazyLoadingEnabled:设置懒加载默认为false。如果为false:則所有相关联的都会被初始化加载
aggressiveLazyLoading:默认为true。当设置为true时懒加载的对象可能被任何懒属性全部加载;否则,每个属性按需加载
定义兩个mapper方法:
先去查询第一个mapper方法,获取订单信息列表;在程序中(service)按需去调用第二个mapper方法去查询用户信息。
使用延迟加载方法先去查询简单的sql(最好单表,也可关联查询)再去按需加载关联查询的其他信息。