Mybatis框架对于处理一对多的情况有两种方法
查询的时候JOIN子表, 然后交给MyBatis拼装数据
查询的时候不JOIN子表, 主表查询完成后发起select再查询关联表数据, 还可以配置fetchType...=lazy进行懒加载
这两种方法各有问题:
第一种方案有两个缺陷: 1) 做分页查询的时候不准, 2) 如果关联子表多, 结果集会非常大, 占用网络IO
第二种方案会出现1+N次查询, 发起的sql数量会非常恐怖...懒加载如果最后转JSON, 那么同样是1+N次查询
建议开发自己去拼装一对多的集合
处理的办法是:
把主表的关联字段手动放进一个集合, 发起in查询把关联表的数据查询出来, 然后手动拼装, 这样发起的查询数量就是